Ich benutze map
in C ++. Angenommen, ich habe 10 Werte in map
und möchte nur den ersten. Wie bekomme ich es?
Vielen Dank.
Eine Karte behält die Einfügereihenfolge nicht bei. Verwenden Sie *(myMap.begin())
diese Option , um den Wert des ersten Paares abzurufen (das mit dem kleinsten Schlüssel bei Bestellung).
Sie können auch myMap.begin()->first
den Schlüssel und myMap.begin()->second
den Wert ermitteln.
myMap.begin()
Gibt einen Iterator zurück. Vielleicht möchten Sie stackoverflow.com/questions/388242/…myMap.begin()
ist ein Iterator, bei dem die Operatoren*
und->
überladen sind, um sich wie ein Zeiger zu verhalten, und die Operatoren++
und--
überladen sind, um Elemente in Ihrer Karte zu iterieren. Sie sollten eine Einführung über die STL lesen. Vielleicht hat jemand einen guten Link für dich?So einfach wie:
your_map.begin()->first // key your_map.begin()->second // value
quelle
begin()
gibt das erste Paar zurück (genau, ein Iterator zum ersten Paar, und Sie können auf den Schlüssel / Wert als->first
und->second
von diesem Iterator zugreifen )quelle
Sie können den Iterator verwenden, der von der begin () -Methode der Kartenvorlage zurückgegeben wird:
std::map<K,V> myMap; std::pair<K,V> firstEntry = *myMap.begin()
Denken Sie jedoch daran, dass der std :: map-Container seinen Inhalt in geordneter Weise speichert. Der erste Eintrag ist also nicht immer der erste Eintrag, der hinzugefügt wurde.
quelle
*my_map.begin()
. Siehe z . B. http://cplusplus.com/reference/stl/map/begin/ .quelle