模板向量<typename>迭代器的NULL /默认值

时间:2018-01-30 18:55:20

标签: c++ iterator stdvector

我希望将矢量迭代器作为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;}
};

2 个答案:

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