7

unique_ptr の 2 つの標準ベクトルを作成します。

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()));

やらなければならないすべての操作の後、どうすればベクトルを削除できますか?

unique_ptr を除いて、ループを実行して各オブジェクトを削除する必要がありました。

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

unique_ptr を使用して、私は何をしなければなりませんか?

unique_ptr::reset を使用する必要があることはわかっています (と思います)。

4

1 に答える 1

19

それは簡単です:

students.clear();

それがスマート ポインター ( などunique_ptr) の目的です。必要に応じて、指しているオブジェクトを破棄します。

于 2012-11-30T20:12:29.680 に答える