Salut à tous, je me pose une petite question depuis quelques temps, pourquoi utiliser des iterators pour itérer sur des containers ?

Admettons qu'on ait ce vector:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
vector<int> myvector;
myvector.resize(10);
fill (myvector.begin(),myvector.end(),5);
Pour itérer je fais toujours ça:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
for(int i = 0; i < (int) myvector.size(); i++) {
    cout << myvector.at(i) << endl;
}
En quoi est-ce mieux de faire ça ?

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
  for (vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)
    cout << " " << *it;
Je trouve ça beaucoup plus contraignant à écrire ^^

Pouvez-vous m'éclairer ? Merci d'avance