Допустим, я StD :: список некоторого класса T.Raw против уникальных указателей в списке
Что такое лучший способ управлять этими элементами? Учитывая, что только менеджер (я имею в виду - один владелец) может добавлять или удалять элементы из списка.
1)
std::list < T* > myList;
//adding the new element
myList.push_back(new T(..));
//deleting the one element
...roaming through the list...got it...
delete *iterator;
myList.erase(iterator);
2)
std::list < std::unique_ptr<T> > myList;
//adding the new element
myList.push_back (std::unique_ptr<T>(new T(..));
//deleting the one element
...roaming through the list...got it...
myList.erase(iterator);
«зависит» - хороший ответ, но я бы пошел с2 в большинстве случаев. Перемещение семантики сделает все удаление для вас, что является просто болью в butt в противном случае. – IdeaHat
Что случилось с 'std :: list'? –
Вам нужно хранить указатели (возможно, для полиморфизма)? Если нет, 'std :: list' будет лучше. –