C++ - 如何遍历从头到尾的列表?

Elf*_*yer 2 c++ for-loop stl list

我想从头到尾显示我的列表.喜欢:

for (std::list<T>::const_iterator it = list.end(); it != list.begin(); --it)
Run Code Online (Sandbox Code Playgroud)

问题是当它在第一个元素(list.begin())中时它不会进入.我怎样才能做到这一点?

sta*_*tiv 19

使用rbegin和rend获取反向迭代器.

for (std::list<...>::reverse_iterator it=list.rbegin(); it!=list.rend(); ++it)
Run Code Online (Sandbox Code Playgroud)

  • 作为奖励,你可以使用`auto`:`for(auto it = list.rend(); it!= list.rbegn(); ++ it){...}` (3认同)

jua*_*nza 5

使用反向迭代器:

for (std::list<...>::const_reverse_iterator it = l.rbegin(); it != l.rend(); ++it)
Run Code Online (Sandbox Code Playgroud)

C++ 11

for (auto it = l.crbegin(); it != l.crend(); ++it)
Run Code Online (Sandbox Code Playgroud)

请不要为你的std::list<T>实例命名list.