c++ - 是否可以从 .begin() 迭代到 .rbegin()

标签 c++

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

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

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

是否依赖于容器? (现在,我正在使用 std::vector 但它可能会改变)

最佳答案

除了Tony D的评论, 你可以使用 std::prev(C.end())获取结束迭代器之前的迭代器:

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

关于c++ - 是否可以从 .begin() 迭代到 .rbegin(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27435793/

相关文章:

c++ - C++中的局部变量问题

c++ - 覆盖虚函数返回类型不同且不是协变的

c++ - 是否为包含相同值的范围定义了 std::nth_element?

c++ - 如何将仅资源 dll 转换为十六进制格式 *.cpp 文件?

c++ - 如何从 C 调用在 MATLAB 中创建并在 C 中编译的函数?

c++ - c++ 中是否有任何免费的 ITERATIVE 线性系统求解器允许我输入任意初始猜测?

c++ - 无论分辨率如何,使球以相同的速度移动 (PONG)

c++ - 使用 cmake 编译时 undefined reference

c++ - QT中的Tesseract

c++ - cppsqlite3中的sqlite3的sqlite3_exec是什么(如果有的话)?