STL Вектор Unique_ptr — Как сбросить?

Я создаю два стандартных вектора unique_ptr:

std::vector<std::unique_ptr<Student>> students;
std::vector<std::unique_ptr<Teacher>> teachers;

Затем я создаю новый объект и помещаю его в вектор:

students.push_back(std::unique_ptr<Student> (new Student()));
teachers.push_back(std::unique_ptr<Teacher> (new Teacher()));

После всей операции, которую я должен сделать, как я могу удалить вектор?

Whitout unique_ptr Я должен был сделать цикл и удалить каждый объект:

while (!students.empty())
{
delete students.back();
students.pop_back();
}

Теперь с unique_ptr, что мне делать?

Я знаю, что должен использовать unique_ptr :: reset (я думаю).

4

Решение

Это просто:

students.clear();

Это то, что умные указатели (как unique_ptr) для — они заботятся об уничтожении объекта, на который указывает, когда это необходимо.

14

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]