我需要遍历一个std::list直到end() - 1(所以我不希望在遍历时包含最后一个元素).有效的方法是什么?
#include <iostream>
#include <list>
using namespace std;
int main()
{
list<int> l{1,2,3,4,5};
for(auto itr = l.begin(); itr != l.end() - 1; ++itr)
{
cout << *itr << '\n';
}
}
Run Code Online (Sandbox Code Playgroud)
std::list::iterator是一个BidirectionalIterator.您可以使用它std::prev来获取需要停止的迭代器.
for(auto itr = l.begin(), end = std::prev(l.end()); itr != end; ++itr)
{
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
98 次 |
| 最近记录: |