3 votes

Obtenir un objet du vecteur par valeur

Cela semble être une question stupide, mais je veux juste le vérifier. Si je veux obtenir un objet dans un vecteur par valeur, je peux utiliser [], correct ? Si je le veux par référence, je dois utiliser myvector.at(), n'est-ce pas ? Existe-t-il un moyen de renvoyer un objet par valeur ? Par exemple :

std::vector<Foo> foos;
foos.push_back(Foo());
Foo f1 = foos[0]; // by value
Foo f2 = foos.at(0); // by reference

2voto

PMat Points 834

Ce n'est pas correct. Les deux sites vector::operator[] y vector::at renvoie des références à l'objet à l'index demandé. En cas de vector::at les erreurs hors limites sont implicitement vérifiées et une exception est levée. vector::operator[] est similaire à un accès à un tableau.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X