he declarado un vector como¿Debo iterar un vector por iterador o por operador de acceso?
std::vector<int> MyVector;
MyVector.push_back(5);
MyVector.push_back(6);
MyVector.push_back(7);
¿Cómo debo usar en un bucle?
¿Al iterarlo con un iterador?
for (std::vector<int>::iterator it=MyVector.begin(); it!=MyVector.end(); ++it)
{
std::cout << "Vector element (*it): " << *it << std::endl;
}
¿O por su iterador de acceso?
for (std::vector<int>::size_type i=0; i<MyVector.size(); i++)
{
std::cout << "Vector element (i) : " << MyVector.at(i) << std::endl;
}
En los ejemplos que encontré en Internet se usan ambos. ¿Es uno de ellos superior al otro en todas las condiciones? Si no, ¿cuándo debería preferir uno de ellos sobre el otro?
qué no el nombre * "iterador" * ayuda con la decisión? Por cierto, espero que tengas un claro entendimiento de lo que 'std :: vector :: at' hace y por qué lo usas en tu código. Si se usa 'std :: vector :: at' en lugar de' std :: vector :: operator [] ', los iteradores probablemente siempre sean más rápidos (sin tener en cuenta otras ventajas). –