Junior
80
0
questionbank

В чем разница между unique_ptr и shared_ptr?

Answer from sobes.tech neural network

unique_ptr — эксклюзивное владение ресурсом, shared_ptr — совместное владение ресурсом с подсчетом ссылок.

unique_ptr:

  • Не может быть скопирован, только перемещен (std::move).
  • Низкие накладные расходы (аналогично сырому указателю).
  • При уничтожении unique_ptr ресурс освобождается.
cpp

shared_ptr:

  • Может быть скопирован.
  • Использует счетчик ссылок: ресурс удаляется, когда последний shared_ptr на него уничтожается.
  • Большие накладные расходы (хранит счетчик ссылок и указатель на ресурс).
  • Возможны циклические ссылки (решаютс

unique_ptr — эксклюзивное владение ресурсом, shared_ptr — совместное владение ресурсом с подсчетом ссылок.

unique_ptr:

  • Не может быть скопирован, только перемещен (std::move).
  • Низкие накладные расходы (аналогично сырому указателю).
  • При уничтожении unique_ptr ресурс освобождается.
cpp

shared_ptr:

  • Может быть скопирован.
  • Использует счетчик ссылок: ресурс удаляется, когда последний shared_ptr на него уничтожается.
  • Большие накладные расходы (хранит счетчик ссылок и указатель на ресурс).
  • Возможны циклические ссылки (решаютс

Register or sign in to get access to full answers for all questions from the question bank.

cppmemory-managementsmart-pointersresource-managementownershiplifetime