Puoi farlo nel seguente modo. Lasciate che si supponga che il contenitore è std::vector<int> v
Poi si può scrivere qualcosa come
std::vector<int>::size_type i = 0;
for (int x : v)
{
// using x;
// using v[i];
++i;
}
Per esempio
#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;
}
}
Tuttavia c'è un problema che l'iteratore deve essere un iteratore ad accesso casuale. Altrimenti non è possibile utilizzare l'operatore di pedice.
fonte
2014-05-03 15:56:30
Vuoi dire s.th. come 'for (auto it: enumerate())' –
AFAIK non ci sono funzionalità linguistiche per fare questo, e non c'è nulla nella libreria standard che si possa usare banalmente. Dovresti implementare qualcosa o usare una brutta variabile del contatore dell'oscilloscopio esterno. – juanchopanza
@juanchopanza: che dire di una variabile di iterazione che restituisce una tupla? –