我正在尝试将迭代器初始化为NULL
,但无法正常工作。谁能帮我?
如果可以使用null初始化指针,为什么我们不能对迭代器进行初始化呢?
vector<int> bob;
vector<int>::iterator it=NULL;
我想在类构造函数中初始化迭代器,以便在创建类的对象时,应将迭代器设置为NULL
(默认)。
不,通常您不能使用初始化迭代器NULL
。迭代器要求不需要从整数类型或可以具有std::nullptr_t
的可能类型中分配或初始化迭代器NULL
。
尝试这样做没有任何意义。根本不需要它。但是由于您还没有解释为什么要尝试这样做,所以我真的无法提出任何进一步的建议。
关于注释中的其他问题:您可以对每个正向迭代器进行值初始化:
vector<int>::iterator it{}; // value-initialized
从C ++ 14开始,可以保证以这种方式构造的相同类型的比较迭代器比较相等。
所有容器迭代器都是前向迭代器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句