#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));
Dire che ora voglio rimuovere una delle coppie che ho appena aggiunto alla mappa.Come rimuovere una coppia specifica da un multimap C++?
Ho esempi per rimuovere un'intera voce di chiave, che per la chiave "b" rimuove sia "b", 15 e "b", 20.
Ma qual è il codice da rimuovere solo, ad esempio, la coppia 'b', 20?
Grazie mille Charles e anche per lo snippet di codice. –
Grazie per questo! Si noti inoltre che può esserci più di una coppia che ha il valore AND della chiave corrispondente (ad esempio più di una coppia ('b', 15)), quindi potresti non voler rompere dopo aver trovato solo il primo hit. Nota che con multimap, apparentemente la funzione cancella() non invalida altri iteratori (eccetto l'iteratore cancellato), quindi puoi continuare a scorrere (o almeno questo è ciò che raccolgo da questa pagina: http: //www.cplusplus .com/reference/map/multimap/cancella /) –
Si può continuare con iterazione sì, ma l'iteratore effettivamente cancellato è invalidato, quindi è necessario prima recuperare un iteratore all'elemento successivo. –