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

Метод use_count

Метод use_count возвращает текущее количество объектов shared_ptr, которые совместно владеют одним и тем же ресурсом. Другими словами, он показывает, сколько «владельцев» ссылается на один и тот же указатель. Метод не принимает параметров и возвращает целое число типа long.

Когда счетчик владельцев становится равным нулю, управляемый объект автоматически удаляется. Для пустого указателя метод возвращает 0.

Синтаксис

ptr.use_count()

Пример

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

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

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

1

Пример

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

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

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

2 2

Пример

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

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

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

1 0

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

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