#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));
Digamos que ahora quiero eliminar uno de los pares que acabo de agregar al mapa.¿Cómo eliminar un par específico de un multimapa en C++?
Tengo ejemplos para eliminar una entrada de clave completa, que para la clave 'b' eliminaría tanto 'b', 15 como 'b', 20.
Pero, ¿cuál es el código para eliminar simplemente, digamos, el par 'b', 20?
Muchas gracias Charles, y también para el fragmento de código. –
¡Gracias por esto! También tenga en cuenta que puede haber más de un par que tenga el valor Y de la clave correspondiente (por ejemplo, más de un par ('b', 15)), por lo que es posible que no desee romper después de encontrar solo el primer golpe. También tenga en cuenta que con multimap, aparentemente la función erase() no invalida otros iteradores (excepto el iterador borrado), por lo que puede seguir iterando (o al menos eso es lo que recojo de esta página: http: //www.cplusplus .com/reference/map/multimap/erase /) –
Puede seguir iterando sí, pero el iterador borrado es invalidado, por lo que primero debe recuperar un iterador para el próximo elemento. –