РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
642 of 815 menu

Функция 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,
    который освобождает владение объектом
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить