Estoy usando map
en C++. Supongamos que tengo 10 valores en el map
y solo quiero el primero. ¿Como lo consigo?Obtener el primer valor del mapa en C++
Gracias.
Estoy usando map
en C++. Supongamos que tengo 10 valores en el map
y solo quiero el primero. ¿Como lo consigo?Obtener el primer valor del mapa en C++
Gracias.
Un mapa no va a mantener el orden de inserción. Use *(myMap.begin())
para obtener el valor del primer par (el que tiene la clave más pequeña cuando se lo pide).
También puede hacer myMap.begin()->first
para obtener la clave y myMap.begin()->second
para obtener el valor.
begin()
devuelve el primer par, (precisamente, un iterador al primer par, y se puede acceder a la clave/valor como ->first
y ->second
de ese iterador)
*my_map.begin()
. Ver p. http://cplusplus.com/reference/stl/map/begin/.
tan simple como:
your_map.begin()->first // key
your_map.begin()->second // value
Usted puede utilizar el iterador que devuelve el método begin() de la plantilla de mapa:
std::map<K,V> myMap;
std::pair<K,V> firstEntry = *myMap.begin()
Pero recuerde que el std :: mapa del envase almacena su contenido de una manera ordenada. Entonces, la primera entrada no es siempre la primera entrada que se ha agregado.
¿devuelve un puntero? – adir
'myMap.begin()' devuelve un iterador. Es posible que desee comprobar http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list – MSalters
No, devuelve valores. 'myMap.begin()' es un iterador, que tiene los operadores '*' y '->' sobrecargados para comportarse como un puntero y los operadores '++' y '--' sobrecargados para iterar elementos en su mapa. Deberías leer una introducción sobre el STL. ¿Tal vez alguien tiene un buen enlace para ti? – Benoit