在下一个循环之前,基于循环访问范围中的下一个元素

时间:2013-11-14 00:43:23

标签: c++ loops

如何在下一个循环之前访问基于for循环的范围中的下一个元素?

我知道使用迭代方法执行类似arr[++i]的操作,但如何在基于范围的for循环中实现相同的结果?

for (auto& cmd : arr) {
   steps = nextElement; //How do I get this nextElement before the next loop?
}

据我所知,我可能不应该使用基于范围的for循环,但这是为该项目提供的要求。

1 个答案:

答案 0 :(得分:4)

如果范围具有连续存储(例如std::vectorstd::arraystd::basic_string或本机数组),则可以执行此操作:

for (auto& cmd : arr) {
    steps = *(&cmd + 1);
}

否则,你不能没有外部变量。