是否有可能从.begin()迭代到.rbegin()

时间:2014-12-12 02:14:02

标签: c++

我需要在结束之前从容器的开头迭代到一个元素。我可以在循环中放置一个if条件来绕过最后一个元素,但我想知道是否可以像这样编写for循环:

for (it = C.begin(); it != C.rbegin(); it++){...}

如果没有,有什么建议吗?

容器是否依赖? (目前,我正在使用std::vector,但可能会更改)

1 个答案:

答案 0 :(得分:1)

除了Tony D的注释之外,您还可以使用std::prev(C.end())来获取结束迭代器之前的迭代器:

for (it = C.begin(); it != std::prev(C.end()); it++);
//                         ^^^^^^^^^^^^^^^^^^