Soll ich einen Vektor durch einen Iterator oder durch einen Zugriffsoperator iterieren?

Ich habe einen Vektor als deklariert

std::vector<int> MyVector;
MyVector.push_back(5);
MyVector.push_back(6);
MyVector.push_back(7);

Wie soll ich es in einer for-Schleife verwenden?

Indem Sie es mit einem Iterator iterieren?

for (std::vector<int>::iterator it=MyVector.begin(); it!=MyVector.end(); ++it)
{
    std::cout << "Vector element (*it): " << *it << std::endl;
}

Oder durch seinen Zugriffsiterator?

for (std::vector<int>::size_type i=0; i<MyVector.size(); i++)
{
    std::cout << "Vector element  (i) : " << MyVector.at(i) << std::endl;
}

In Beispielen, die ich im Internet gefunden habe, werden beide verwendet. Ist einer unter allen Umständen dem anderen überlegen? Wenn nicht, wann sollte ich eines dem anderen vorziehen?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage