C++ 访问数组中的不同元素

C++ 访问数组中的不同元素,c++,c++11,C++,C++11,在for(auto e:elem)中,我正在试图找出如何访问元素e-1。而在C++前11中,它本来就是 EELM [E1] < /Cord>我肯定必须是C++ 11等价的。< /P> < P>这两个事物有很大不同: for(auto e : elem) 循环遍历整个集合elem,而 elem[e - 1] 正在访问给定索引e-1处elem的单个元素 C++11没有按索引删除访问,也不被认为是不好的做法,因为有时您没有任何其他选择来实现算法。使用,您可能会这样做 for (auto [p, n

for(auto e:elem)
中,我正在试图找出如何访问元素e-1。而在C++前11中,它本来就是<代码> EELM [E1] < /Cord>我肯定必须是C++ 11等价的。< /P> < P>这两个事物有很大不同:

for(auto e : elem)
循环遍历整个集合
elem
,而

elem[e - 1]
正在访问给定索引
e-1
elem
的单个元素

C++11没有按索引删除访问,也不被认为是不好的做法,因为有时您没有任何其他选择来实现算法。

使用,您可能会这样做

for (auto [p, n] : ranges::view::zip(v, v | ranges::view::drop(1))) {
    // ...
}

这里e是元素,而不是索引。如果您想使用索引,您应该继续使用C++11之前的for loopHere,
e
不是索引,它是
elem
中的元素之一。如果需要一次访问多个元素,则应使用经典语法。