我想在C++中遍历一个列表但是从最后一直到结束才到第五个.但我发现没有定义" - "运算符以便我可以使用
list<>::iterator j=i-5;
Run Code Online (Sandbox Code Playgroud)
我可以使用size()
函数以某种方式保持计数等,但有任何其他直接的方式吗?
Count是唯一可能无法以某种方式有效遍历列表的实用方法.
auto myEnd = std::advance(myList.end(),-5)
Run Code Online (Sandbox Code Playgroud)
但这只会遍历最后五个列表元素以达到您想要的点,因此它不会比大多数其他解决方案更快或更优雅.但是,使用整数循环确实需要保持整数计数和迭代器,这实际上只需要迭代器,所以在这方面它可能更好.
如果你<list>
有一个O(1)计数,并且从末尾返回的距离很大,请使用整数循环,否则上面的结果很好.
归档时间: |
|
查看次数: |
422 次 |
最近记录: |