是否有一个C++/C++ 11类似于python迭代的索引和值"for i,v in enumerate(listVar):"?

daj*_*daj 6 c++ python iterator c++11

是否有python习语的C++类似物:

for i, v in enumerate(listVar):
Run Code Online (Sandbox Code Playgroud)

即我想迭代访问索引和我正在迭代的容器的值.

Vla*_*cow 3

您可以按照以下方式进行操作。假设容器是std::vector<int> v

然后你可以写一些东西

std::vector<int>::size_type i = 0;

for ( int x : v )
{
   // using x;
   // using v[i];
   ++i;
}
Run Code Online (Sandbox Code Playgroud)

例如

#include <iostream>
#include <vector>

int main()
{
   std::vector<int> v = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

   std::vector<int>::size_type i = 0;
   for ( int x : v )
   {
      std::cout << x << " is " << v[i] << std::endl;
      ++i;
   }
}
Run Code Online (Sandbox Code Playgroud)

然而,存在一个问题,迭代器应该是随机访问迭代器。否则不能使用下标运算符。