在STL迭代器中使用`auto`关键字

时间:2018-04-17 08:11:35

标签: c++ c++11 stl iterator auto

我正在关注使用auto关键字和STL迭代器的this教程。

它表示这种语法适用于C ++ 11.

vector<int> vec;
auto itr = vec.iterator(); // instead of vector<int>::iterator itr

但是,当我尝试它时会出现这个编译错误吗?

  

错误:无效使用'std :: vector :: iterator'

1 个答案:

答案 0 :(得分:6)

教程错了。 iterator是所有集合类中的类型成员,而不是函数成员。它是某些vector成员函数的返回类型

教程可能的意思是

vector<int> vec;
auto itr = vec.begin(); // itr is of type std::vector<int>::iterator