Home C&C++函数库 c++ 语法 程序源码 Linux C库

std::

multimap

类模板   <map>
template < class Key,                                     // multimap::key_type
           class T,                                       // multimap::multimapped_type
           class Compare = less<Key>,                     // multimap::key_compare
           class Alloc = allocator<pair<const Key,T> >    // multimap::allocator_type
           > class multimap;
多重映射

multimap是一种关联容器,它存储由键值和映射值按特定顺序组合而成的元素,其中多个元素可以具有相同的键。

在multimap中,键值通常用于对元素进行排序和惟一标识,而映射的值存储与此键相关的内容。 key和映射值的类型可能不同,并在成员类型value_type中组合在一起, value_type是一种组合这两种类型的pair类型:
typedef pair<const Key, T> value_type;
在内部,multimap中的元素总是按照其键进行排序,并遵循由内部比较对象(Compare类型)指示的特定严格弱排序标准。

multimap容器通过键访问单个元素通常比unordered_multimap容器慢,但它们允许基于它们的顺序对子集进行直接迭代。

multimap通常被实现为二叉搜索树.

☲  容器特性


关联
关联容器中的元素是通过它们的键引用的,而不是通过它们在容器中的绝对位置引用的。
有序
容器中的元素始终遵循严格的顺序。所有插入的元素都按此顺序给定一个位置。
映射
每个元素将一个键与一个映射值相关联:键意味着标识其主要内容是映射值的元素.
键唯一
容器中的多个元素可以具有相同的键.
分配器
容器使用allocator对象动态地处理其存储需求。

☲  模板参数


Key
键的类型。映射中的每个元素都是由其键值标识的。
成员类型multimap::key_type的别名.
T
映射值的类型。multimap中的每个元素都存储一些数据作为其映射值。
成员类型multimap::multimapped_type的别名.
Compare
接受两个元素键作为参数并返回bool值的二元谓词。 表达式comp(a,b),其中comp是这种类型的对象,ab是键值, 如果在函数定义的严格弱排序中a被认为在b之前,则返回true
映射对象使用这个表达式来确定元素在容器中遵循的顺序, 以及两个元素键是否相等(通过条件自动地比较它们:如果!comp(a,b) && !comp(b,a),它们是相等的)。
这可以是一个函数指针或一个函数对象(参见构造函数的例子)。 默认为less<T>,它返回的结果与小于操作符(a<b)相同。
成员类型multimap::key_compare 的别名.
Alloc
用于定义存储分配模型的allocator对象的类型。 默认情况下, 使用allocator类模板,它定义了最简单的内存分配模型,并且与值无关。
别名为成员类型 multimap::allocator_type.

☉  成员类型



C++98:
成员类型 定义 注释
key_type 起始模板参数(Key)
mapped_type 第二个模板参数(T)
value_type pair<const key_type,mapped_type>
key_compare 第三个模板参数(Compare) 默认为: less<key_type>
value_compare 嵌套函数类比较元素 参见 value_comp
allocator_type 第四个模板参数(Alloc) 默认为: allocator<value_type>
reference allocator_type::reference& 默认分配器: value_type&
const_reference allocator_type::const_reference 默认分配器: const value_type&
pointer allocator_type::pointer 默认分配器:value_type*
const_pointer allocator_type::const_pointer 默认分配器:const value_type*
iterator 一个访问value_type的双向迭代器 转换为const_iterator
const_iterator 指向const value_type的双向迭代器
reverse_iterator reverse_iterator<iterator>
const_reverse_iterator reverse_iterator<const_iterator>
difference_type 一种有符号整型,相当于: iterator_traits<iterator>::difference_type
通常与ptrdiff_t相同
size_type 无符号整型,可以表示任何difference_type的非负值 通常与size_t相同

☞ 成员函数



multimap(constructor) multimap构造函数 (公众成员函数)
(destructor) multimap析构函数(公众成员函数)
operator= 复制容器的内容(公众成员函数)

迭代器:
begin 返回一个指向multimap开头的迭代器 (公众成员函数)
end 返回一个指向multimap末尾元素的下一个元素的迭代器 (公众成员函数)
rbegin 返回指向multimap最后一个元素的反向迭代器 (公众成员函数)
rend 返回指向multimap开始元素之前的理论元素的反向迭代器(公众成员函数)
cbegin 返回一个指向multimap开头的常量迭代器 (公众成员函数)
cend 返回一个指向multimap末尾元素的下一个元素的常量迭代器 (公众成员函数)
crbegin 返回指向multimap最后一个元素的常量反向随机迭代器(公众成员函数)
crend 返回指向multimap开始元素前一个元素的常量反向随机迭代器 (公众成员函数)
容量:
empty 测试容器是否为空 (公众成员函数)
size 返回大小 (公众成员函数)
max_size 返回最大元素个数(公众成员函数)
修改器:
insert 插入元素(公众成员函数)
erase 删除元素(公众成员函数)
swap 交换内容(公众成员函数)
clear 清除内容(公众成员函数)
emplace 构造和插入元素(公众成员函数)
emplace_hint 构造插入元素并加提示(公众成员函数)
查看:
key_comp 返回键比较对象(公众成员函数)
value_comp 返回值较对象(公众成员函数)
操作:
find 获取元素迭代器(公众成员函数)
count 具有特定值的元素数量(公众成员函数)
lower_bound 返回迭代器下界(公众成员函数)
upper_bound 返回迭代器上界(公众成员函数)
equal_range 获取相等元素的范围(公众成员函数)
分配器:
get_allocator 获取配置器(公众成员函数)

联系我们 免责声明 关于CandCplus 网站地图