Ich benutze map
in C ++. Angenommen, ich habe 10 Werte in map
und möchte nur den ersten. Wie bekomme ich es?
Vielen Dank.
Antworten:
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()
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?
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.
*my_map.begin()
. Siehe z . B. http://cplusplus.com/reference/stl/map/begin/ .
myMap.begin()
Gibt einen Iterator zurück. Vielleicht möchten Sie stackoverflow.com/questions/388242/…