为什么在使用C ++声明迭代器时,范围运算符“::”是必要的?
std::vector<int>::iterator i;
答案 0 :(得分:3)
由于iterator
未在全局范围内定义,因此它是std::vector<int>
类中定义的类型。
这也意味着您可以在不同的范围内拥有更多名为iterator
的类,例如std::list<...>::iterator
,std::set<...>::iterator
,std::map<...>::iterator
等等;所有这些都是不同的类,都有名称iterator
,但每个都在不同的类中定义。
答案 1 :(得分:1)
iterator是类std :: vector&lt;&gt;中的typedef