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

Метод unique

Метод unique класса shared_ptr проверяет, является ли умный указатель единственным владельцем управляемого объекта. Метод не принимает параметров и возвращает true, если счётчик ссылок равен 1, и false в противном случае. Если указатель пуст, метод также возвращает false.

Синтаксис

ptr.unique()

Пример

Давайте создадим указатель и проверим, является ли он единственным владельцем объекта:

#include <iostream> #include <memory> using namespace std; int main() { shared_ptr<int> ptr = make_shared<int>(42); cout << ptr.unique() << endl; return 0; }

Результат выполнения кода:

1

Пример

Давайте создадим копию указателя и снова проверим уникальность владения:

#include <iostream> #include <memory> using namespace std; int main() { shared_ptr<int> ptr1 = make_shared<int>(42); shared_ptr<int> ptr2 = ptr1; cout << ptr1.unique() << endl; cout << ptr2.unique() << endl; return 0; }

Результат выполнения кода:

0 0

Пример

Давайте проверим пустой указатель - метод вернёт false, так как владельца нет:

#include <iostream> #include <memory> using namespace std; int main() { shared_ptr<int> ptr; cout << ptr.unique() << endl; return 0; }

Результат выполнения кода:

0

Смотрите также

  • класс shared_ptr,
    который представляет умный указатель с общим владением
  • метод use_count,
    который возвращает количество владельцев объекта
  • метод reset,
    который сбрасывает владение объектом
  • метод get,
    который возвращает сырой указатель на объект
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить