92 votes

Récupérer la première valeur d'une carte en C++

J'utilise map en C++. Supposons que j'ai 10 valeurs dans le map et je ne veux que le premier. Comment puis-je l'obtenir ?

Merci.

141voto

Benoit Points 35553

Une carte ne conserve pas l'ordre d'insertion. Utilisez *(myMap.begin()) pour obtenir la valeur de la première paire (celle dont la clé est la plus petite dans l'ordre).

Vous pouvez également faire myMap.begin()->first pour obtenir la clé et myMap.begin()->second pour obtenir la valeur.

20voto

jweyrich Points 10002

Aussi simple que ça :

your_map.begin()->first // key
your_map.begin()->second // value

7voto

Nim Points 22570

begin() renvoie la première paire, (précisément, un itérateur vers la première paire, et vous pouvez accéder à la clé/valeur en tant que ->first y ->second de cet itérateur)

6voto

Marcus Gründler Points 369

Vous pouvez utiliser l'itérateur renvoyé par la méthode begin() du modèle de carte :

std::map<K,V> myMap;
std::pair<K,V> firstEntry = *myMap.begin()

Mais n'oubliez pas que le conteneur std::map stocke son contenu de manière ordonnée. Ainsi, la première entrée n'est pas toujours la première entrée qui a été ajoutée.

0voto

Oli Charlesworth Points 148744

*my_map.begin() . Voir par exemple http://cplusplus.com/reference/stl/map/begin/ .

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