我希望将矢量迭代器作为c ++中类定义的一部分,并希望将它们初始化为固定的默认值。在指针的情况下,我会初始化为NULL,不知道应该为矢量迭代器做什么。
class ball{
private:
double x;
double v;
double timeToNext;
vector<ball>::iterator lball, rball;//How should they be initialized?
public:
ball() { //default constructor
x=-1*INF;
v=0;
cout<<"Ball added"<<endl;
//want to initialize iterators
}
void setx(double &pos){x=pos;}
void setv(double &vel){v=vel;}
void setTimeToNext() {
double tl, tr;
}
double getx(){return x;}
double getv(){return v;}
};
答案 0 :(得分:5)
希望将它们初始化为固定的默认值。在指针的情况下,我会初始化为NULL,不知道应该为矢量迭代器做什么。
std::vector::iterator
没有这样的事情。 std::vector::iterator
的实例除非与std::vector
相关联,否则不合理。
您可以将std::vector::iterator
默认值初始化,但除非将其设置为与std::vector
实例关联的合适值,否则无法使用它。
答案 1 :(得分:-3)
您可以将此声明为您班级的成员:
private:
static const Vector::iterator null = Vector::iterator();