你可以用
std::multimap<char, int>::equal_range
,它将为您提供一个迭代器范围,其中包含具有特定键的所有对。因此,如果您查找“b”,您将得到一个迭代器范围,其中包含所有以“b”为键的对。
然后,您可以简单地遍历该范围,并通过删除迭代器来删除您认为合适的任何对。
multimap<char,int> mymap;
mymap.insert(pair<char,int>('a',10));
mymap.insert(pair<char,int>('b',15));
mymap.insert(pair<char,int>('b',20));
mymap.insert(pair<char,int>('c',25));
typedef multimap<char, int>::iterator iterator;
std::pair<iterator, iterator> iterpair = mymap.equal_range('b');
// Erase (b,15) pair
//
iterator it = iterpair.first;
for (; it != iterpair.second; ++it) {
if (it->second == 15) {
mymap.erase(it);
break;
}
}