multimap和map的区别:
首先认识一下multimap和map的区别:
1> multimap不提供operator[ ]运算符。因为这个运算符的语义在同一个键可以保存多个值的容器multimap里是无意义的。
2> multimap插入元素的时候总是能成功的。所以插入insert()方法只返回一个iterator。不像是map的insert()返回的是《iterator , bool》.
麻烦的是multimap查找元素的时候,因为这里不提供operator[ ],而find(key)返回的可能是多个元素,这也不准确。但是multimap提供了lower_bound()和upper_bound()函数;
分别返回的是同一个健的第一个元素得迭代器和最后一个元素得下一个元素得迭代器。注意的是,如果没有这个键值,则lower_bound和upper_bound是相同得;还有一个方法就是使用equal_bound()方法。这个函数返回的是两个iterator得std::pair<>(分别是lower_bound()和upper_bound()得迭代器);
#include #include
结果是:
list_1 : wenjie
list_1 : meijun
list_1 : dajun
list_2 : abcd
list_2 : fefg
list_2 : jhnf
list_2 : errh