Функция make_unique
Функция make_unique создает объект
типа unique_ptr и возвращает его.
Она безопасно выделяет память под объект
и передает аргументы в его конструктор.
Первый параметр - это тип создаваемого
объекта (указывается в угловых скобках),
а последующие параметры - аргументы,
которые передаются в конструктор объекта.
Функция появилась в стандарте C++14 и
является предпочтительным способом
создания unique_ptr, так как
избавляет от необходимости использовать
new напрямую.
Синтаксис
auto ptr = make_unique<Type>(args...);
Пример
Давайте создадим unique_ptr на
объект типа int со значением
42 и выведем это значение:
#include <iostream>
#include <memory>
using namespace std;
int main()
{
auto ptr = make_unique<int>(42);
cout << *ptr << endl;
return 0;
}
Результат выполнения кода:
42
Пример
Давайте создадим unique_ptr на
объект типа string со значением
"abcde" и выведем его:
#include <iostream>
#include <memory>
#include <string>
using namespace std;
int main()
{
auto ptr = make_unique<string>("abcde");
cout << *ptr << endl;
return 0;
}
Результат выполнения кода:
"abcde"
Пример
Давайте создадим unique_ptr на
объект типа vector с элементами
1, 2, 3, 4,
5 и выведем их:
#include <iostream>
#include <memory>
#include <vector>
using namespace std;
int main()
{
auto ptr = make_unique<vector<int>>(
vector<int>{1, 2, 3, 4, 5}
);
for (int num : *ptr) {
cout << num << " ";
}
cout << endl;
return 0;
}
Результат выполнения кода:
1 2 3 4 5
Смотрите также
-
класс
unique_ptr,
который представляет умный указатель -
метод
get,
который возвращает сырой указатель -
метод
reset,
который заменяет управляемый объект -
метод
release,
который освобождает владение объектом