4
我创建的unique_ptr的两个标准载体:STL向量的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我不得不做一个循环,并删除每个对象:具有的unique_ptr
while (!students.empty())
{
delete students.back();
students.pop_back();
}
现在我有什么做的?我知道我不得不使用unique_ptr :: reset(我认为)。
所以基本上,当我调用clear()时,所有的对象都被删除了? – LppEdd
@ user1860848是的,确切地说。当你调用clear()时,vector中的对象('unique_ptr's)被删除。当'unique_ptr'被删除时,它删除它指向的对象。 – Angew
是否正确写入:std :: vector>学生; ?只是好奇心。 –
LppEdd