范围运算符和迭代器

时间:2011-02-02 01:18:00

标签: c++ iterator containers

为什么在使用C ++声明迭代器时,范围运算符“::”是必要的?

std::vector<int>::iterator i;

2 个答案:

答案 0 :(得分:3)

由于iterator未在全局范围内定义,因此它是std::vector<int>类中定义的类型。

这也意味着您可以在不同的范围内拥有更多名为iterator的类,例如std::list<...>::iteratorstd::set<...>::iteratorstd::map<...>::iterator等等;所有这些都是不同的类,都有名称iterator,但每个都在不同的类中定义。

答案 1 :(得分:1)

iterator是类std :: vector&lt;&gt;中的typedef