J'ai lu ici et d'autres endroits que quand un itérer std :: vecteur en utilisant des index, vous devez:Itérer multiples std :: vecteur
std::vector <int> x(20,1);
for (std::vector<int>::size_type i = 0; i < x.size(); i++){
x[i]+=3;
}
Mais si vous itérez deux vecteurs de différents types:
std::vector <int> x(20,1);
std::vector <double> y(20,1.0);
for (std::vector<int>::size_type i = 0; i < x.size(); i++){
x[i]+=3;
y[i]+=3.0;
}
est-il raisonnable de supposer que
std::vector<int>::size_type
est o f du même type que
std::vector<double>::size_type
?
Serait-il prudent d'utiliser std :: size_t?
Merci.
Si vous avez appris sur itérer comme ceci, vous avez appris mal. Mis à part le 'i ++' que tout compilateur décent devrait optimiser à un '++ i', vous appelez toujours' x.size() 'à chaque tour de la boucle, ce qui est inutile si ce n'est pas trivial et non inline. –
@Matthieu, juste un exemple rapide et sale pour illustrer ma question. Je devrais aussi utiliser des itérateurs et ne pas le faire par index. – Mark