70 votes

Renvoi d'un pointeur sur un élément vectoriel en c++.

J'ai un vecteur de myObjects dans la portée globale. J'ai une méthode qui utilise un std::vector<myObject>::const_iterator pour traverser le vecteur, et faire quelques comparaisons pour trouver un élément spécifique. Une fois que j'ai trouvé l'élément requis, je veux pouvoir renvoyer un pointeur vers celui-ci (le vecteur existe dans la portée globale).

Si je retourne &iterator Je renvoie l'adresse de l'itérateur ou l'adresse de ce vers quoi pointe l'itérateur ?

Est-ce que je dois lancer le const_iterator vers un myObject, puis renvoie l'adresse de ce myObject.

0voto

dirkgently Points 56879

Disons que vous avez les éléments suivants :

std::vector<myObject>::const_iterator first = vObj.begin();

Alors le premier objet du vecteur est : *first . Pour obtenir l'adresse, utilisez : &(*first) .

Cependant, conformément à la conception de la STL, je suggère de renvoyer un itérateur à la place si vous prévoyez de le transmettre plus tard à des algorithmes STL.

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