Devo iterar um vetor por iterador ou por operador de acesso?
Eu tenho um vetor declarado como
std::vector<int> MyVector;
MyVector.push_back(5);
MyVector.push_back(6);
MyVector.push_back(7);
Como devo usá-lo em um loop for?
Por iterar com um iterador?
for (std::vector<int>::iterator it=MyVector.begin(); it!=MyVector.end(); ++it)
{
std::cout << "Vector element (*it): " << *it << std::endl;
}
Ou pelo seu iterador de acesso?
for (std::vector<int>::size_type i=0; i<MyVector.size(); i++)
{
std::cout << "Vector element (i) : " << MyVector.at(i) << std::endl;
}
Nos exemplos que encontrei na internet, ambos são usados. Um deles é superior ao outro sob todas as condições? Se não, quando devo preferir um deles ao outro?