多映射是 C++ STL(标准模板库)的一部分。多重映射是类似的集合,例如映射,用于存储已排序的键/值对,但是与仅存储唯一键的映射不同,多重映射可以具有重复的键。
template < class Key, //multimap::key_type class T, //multimap::mapped_type class Compare = less<Key>, //multimap::key_compare class Alloc = allocator<pair<const Key,T> > //multimap::allocator_type > class multimap;
key - 要存储在多重映射中的键数据类型。
type - 要存储在多重映射中的值的数据类型。
compare - 一个比较类,该类使用两个bool类型相同的参数并返回一个值。此参数是可选的,二进制谓词less是默认值。
alloc - 分配器对象的类型。此参数是可选的,默认值为分配器
使用以下语句可以轻松创建multimaps:
typedef pairvalue_type;
上面的表格将用于创建键类型为 Key_type 和值类型为 value_type 的multimaps。重要的一点是,multimaps的键和相应的值始终成对插入,不能在multimaps中仅插入键或仅插入值。
#include <iostream> #include <map> #include <string> using namespace std; int main() { multimap<string, string> m = { {"India","New Delhi"}, {"India", "Learnfk"}, {"United Kingdom", "London"}, {"United States", "Washington D.C"} }; cout << "Size of map m: " << m.size() <<endl; cout << "Elements in m: " << endl; for (multimap<string, string>::iterator it = m.begin(); it != m.end(); ++it) { cout << " [" << (*it).first << ", " << (*it).second << "]" << endl; } return 0; }
输出:
Size of map m: 4 Elements in m: [India, New Delhi] [India, Learnfk] [United Kingdom, London] [United States, Washington D.C]
下面是multimap的所有成员函数的列表:
函数 | 说明 |
---|---|
constructor | 构造multimaps |
destructor | 析构函数 |
operator = | 将multimaps的元素复制到另一个multimaps。 |
函数 | 说明 |
---|---|
begin | 返回指向多重映射中第一个元素的迭代器。 |
cbegin | 返回指向多重映射中第一个元素的const_iterator。 |
end | 返回指向末尾的迭代器。 |
cend | 返回一个指向末尾的常量迭代器。 |
rbegin | 返回指向结尾的反向迭代器。 |
rend | 返回指向起点的反向迭代器。 |
crbegin | 返回一个指向末尾的常量反向迭代器。 |
credit | 返回指向起点的常量反向迭代器。 |
函数 | 说明 |
---|---|
empty | 如果multimaps为空,则返回true。 |
size | 返回multimaps中的元素数量。 |
max_size | 返回multimaps的最大尺寸。 |
函数 | 说明 |
---|---|
insert | 将元素插入multimaps。 |
erase | 从多重映射中擦除元素。 |
swap | 交换multimaps的内容。 |
clear | 删除multimaps的所有元素。 |
emplace | 构造新元素并将其插入multimaps。 |
emplace_hint | 通过提示构造新元素并将其插入multimaps。 |
函数 | 说明 |
---|---|
key_comp | 返回键比较对象的副本。 |
value_comp | 返回值比较对象的副本。 |
函数 | 说明 |
---|---|
find | 搜索具有给定键的元素。 |
count | 获取与给定键匹配的元素数。 |
lower_bound | 将迭代器返回到下限。 |
upper_bound | 将迭代器返回上限。 |
equal_range() | 返回与给定键匹配的元素的参数。 |
函数 | 说明 |
---|---|
get_allocator | 返回用于构造multimaps的分配器对象。 |
Functions | Description |
---|---|
operator== | 检查两个multimaps是否相等。 |
operator!= | 检查两个multimaps是否相等。 |
operator< | 检查第一个multimaps是否小于其他multimaps。 |
operator<= | 检查第一个multimaps是否小于或等于其他。 |
operator> | 检查第一个multimaps是否大于其他multimaps。 |
operator>= | 检查第一个multimaps是否大于其他。 |
swap() | 交换两个multimaps的元素。 |
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)