如何在下一个循环之前访问基于for循环的范围中的下一个元素?
我知道使用迭代方法执行类似arr[++i]
的操作,但如何在基于范围的for循环中实现相同的结果?
for (auto& cmd : arr) {
steps = nextElement; //How do I get this nextElement before the next loop?
}
据我所知,我可能不应该使用基于范围的for循环,但这是为该项目提供的要求。
答案 0 :(得分:4)
如果范围具有连续存储(例如std::vector
,std::array
,std::basic_string
或本机数组),则可以执行此操作:
for (auto& cmd : arr) {
steps = *(&cmd + 1);
}
否则,你不能没有外部变量。