一、multiset
multiset的特性以及用法和set完全相同,唯一的差别在于它允许键值重复,因此它的插入操作采用的是底层RB-tree的insert_equal()而非insert_unique()
multiset源码
//以下代码摘录于stl_multiset.htemplate <class _Key, class _Compare, class _Alloc>class multiset {// requirements:__STL_CLASS_REQUIRES(_Key, _Assignable);__STL_CLASS_BINARY_FUNCTION_CHECK(_Compare, bool, _Key, _Key);public:// typedefs:typedef _Key key_type;typedef _Key value_type;typedef _Compare key_compare;typedef _Compare value_compare;private:typedef _Rb_tree<key_type, value_type,_Identity<value_type>, key_compare, _Alloc> _Rep_type;_Rep_type _M_t; // red-black tree representing multisetpublic:typedef typename _Rep_type::const_pointer pointer;typedef typename _Rep_type::const_pointer const_pointer;typedef typename _Rep_type::const_reference reference;typedef typename _Rep_type::const