C++ Accéder à un élément de la paire à l'intérieur de vecteur
J'ai un vecteur avec chaque élément d'une paire. Je suis confondue avec la syntaxe. Quelqu'un peut-il me dire comment faire pour effectuer une itération sur chaque vecteur et tour à tour, chaque élément de la paire pour accéder à la classe.
std::vector<std::pair<MyClass *, MyClass *>> VectorOfPairs;
Aussi, veuillez noter que je serai en passant les valeurs entre la fonction, d'où VectorOfPairs à être adoptée par le pointeur *VectorOfPairs dans certains endroits de mon code.
Remercie de votre aide. Grâce
OriginalL'auteur Romaan | 2012-10-08
Vous devez vous connecter pour publier un commentaire.
Ici est un exemple. Remarque, je suis en utilisant une définition de type d'alias de long, moche typename:
OriginalL'auteur John Dibling
Cela devrait fonctionner (en supposant que vous avez un C++11 compatible compilateur)
Si vous n'avez pas
auto
vous aurez à utiliserstd::vector<std::pair<MyClass *, MyClass *>>::iterator
à la place.auto
. Pas downvote tho, la bonne réponse.C'est génial pour les itérateurs, il est également obligatoire pour certains types de modèle modèles.
Je comprends les raisons pour lesquelles
auto
a été ajouté à la langue. Je suis très bien avec de l'utiliser quand il le faut. Je pense simplement à l'aide deauto
quand il n'est pas nécessaire est un peu paresseux, et pourrait contribuer à une génération de programmeurs qui ne savent pas vraiment ce qu'ils font. Je pense que je suis sur mon propre avec cette opinion, cependant.Je pense que ce serait une préoccupation valable si elle n'était pas fortement typé. Toutefois, vous devez savoir ce que c'est vraiment pour passer à une fonction (par exemple) je ne pense pas que les connaissances nécessaires sont moins. Il vient de range sinon laid/de longues déclarations.
OriginalL'auteur Benj
Encore une autre option si vous avez un C++11 compatible compilateur est à l'aide de gamme à base
for
bouclesOriginalL'auteur Praetorian