web-dev-qa-db-fra.com

Obtenir la première valeur de la carte en C ++

J'utilise map en C++. Supposons que j'ai 10 valeurs dans map et que je ne veuille que la première. Comment l'obtenir?

Merci.

56
adir

Une carte ne gardera pas l'ordre d'insertion. Utilisez *(myMap.begin()) pour obtenir la valeur de la première paire (celle avec la plus petite clé lors de la commande).

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

87
Benoit

Aussi simple que:

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

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

5
Nim

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 rappelez-vous que le conteneur std :: map stocke son contenu de manière ordonnée. La première entrée n'est donc pas toujours la première entrée ajoutée.

4
Marcus Gründler

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

1
Oliver Charlesworth