#include <map>
...
multimap<char,int> first;
first.insert(pair<char,int>('a',10));
first.insert(pair<char,int>('b',15));
first.insert(pair<char,int>('b',20));
first.insert(pair<char,int>('c',25));
Angenommen, ich möchte jetzt eines der Paare entfernen, die ich gerade zur Karte hinzugefügt habe.Wie entfernt man ein bestimmtes Paar aus einer C++ - Multimap?
Ich habe Beispiele, um einen vollständigen Schlüsseleintrag zu entfernen, der für Schlüssel 'b' würde sowohl 'b', 15 und 'b', 20 entfernen.
Aber was ist der Code nur zu entfernen, sagen wir, das Paar 'b', 20?
Vielen Dank Charles, und auch für das Code-Snippet. –
Danke dafür! Beachten Sie auch, dass es mehr als ein Paar geben kann, das über einen übereinstimmenden AND-Schlüssel verfügt (z. B. mehr als ein ('b', 15) -Paar), sodass Sie nach dem Auffinden des ersten Treffers nicht mehr abbrechen möchten. Beachten Sie auch, dass bei multimap anscheinend die radier() -Funktion andere Iteratoren (außer dem gelöschten Iterator) nicht ungültig macht, so dass Sie weiter iterieren können (oder zumindest das, was ich von dieser Seite erhalte: http: //www.cplusplus .com/reference/map/multimap/erase /) –
Sie können weiter iterieren, aber der tatsächlich gelöschte Iterator wird ungültig, so dass Sie zuerst einen Iterator für das nächste Element abrufen müssen. –