Eventuali duplicati:
Can I declare variables of different types in the initialization of a for loop?C++ Inizializzazione 2 iteratori differenti in un ciclo for
Mi piacerebbe avere un ciclo for in C++ che costruisce 2 diversi tipi di vettore iteratore in l'inizializzazione.
Ecco una vaga idea di quello che vorrei:
std::vector<double> dubVec;
std::vector<int> intVec;
double result = 0;
dubVec.push_back(3.14);
intVec.push_back(1);
typedef std::vector<int>::iterator intIter;
typedef std::vector<double>::iterator dubIter;
for (intIter i = intVec.begin(), dubIter j = dubVec.begin(); i != intVec.end(); ++i, ++j)
{
result += (*i) * (*j);
}
Chiunque sa che cosa è lo standard per fare in questa situazione? Non posso usare solo un vettore di doppio per intVec perché sto cercando una soluzione generale. [Cioè Potrei avere qualche funzione f che prende int a raddoppiare e quindi calcolare f (* i) * (* j)]
Si prega di utilizzare '++ i, ++ j' invece di' && ', poiché ciò non funziona per gli iteratori. – Xeo
L'incremento di un iteratore senza controllo è pericoloso. – Konrad
modificato && in una virgola nel ciclo for. grazie – Derek