我将向量定义为类 Grid 的私有变量。类 Points 只有两个实例变量,它们都是整数,但只有当我从文件中读取它时才会知道点的数量,所以我想我必须用 new 动态地创建 Points,这意味着我必须稍后销毁它们。我是否正确初始化了构造函数,并且在为 Grid 编写析构函数时,是否需要为向量编写析构函数,如下所示:~vecotr() 或删除或使用迭代器?
class Grid{
public:
// initialize vector with 3 points with val 0.
Grid(vector<Points> v) : vector<Points>(3, 0) {}; // is this right
// first option
~Grid() {
~vector<Points>(); // not sure how to destroy vector<Points>;
}
// second option
~Grid() {
delete v_points;
}
// third option
~Grid() {
for (vector<Points>::iterator it = v_points.begin(),
vector<Points>::iterator it_end = v_points.end(); it != it_end; it++)
}
private:
vector<Points> v_points;
};
我应该使用哪个选项,我是否正确初始化了构造函数?