multimap与map的区别就在于,multimap可以一个键值对应多个值,而map只能一个键值对应一个值
1#include <iostream> 2#include <map> 3 4int main() 5{ 6 std::multimap<int,int> x; 7 x.insert(std::pair<int,int>(1,1)); 8 x.insert(std::pair<int,int>(1,2)); 9 x.insert(std::pair<int,int>(2,3)); 10 std::multimap<int,int>::iterator it = x.find(1); 11 x.erase(it); 12 for(auto a : x) 13 { 14 std::cout << a.second << std::endl; 15 } 16 return 0; 17}
如果通过iterator这种方式删除,只能删除第一个值(如果有多个的话),如果直接erase键值,则删除键值所关联的所有值,上面这个例子输出的是2,3,而如果x.erase(1),则输出的只有3.