map/multimap
1. map基本概念
用于存储和检索集合中的数据,此集合中的每个元素均为包含数据值和排序键的元素对。 键的值是唯一的,用于自动排序数据。
可以直接更改映射中的元素值。 键值是常量,不能更改。 必须先删除与旧元素关联的键值,才能为新元素插入新键值。
map和multimap区别:
map不允许容器中有重复的元素
multimap允许容器中有重复的元素
2. 语法
template <class Key,
class Type,
class Traits = less<Key>,
class Allocator=allocator<pair <const Key, Type>>>
class map;
3. 参数
Key
要存储在中的键数据类型 map 。
Type
要在 map 中存储的元素数据类型。
Traits
提供一个函数对象的类型,该函数对象可将两个元素值作为排序键进行比较,以确定它们在中的相对顺序 map 。 此参数为可选自变量,默认值是二元谓词 less。
Allocator
一种表示存储的分配器对象的类型,该分配器对象封装有关映射的内存分配和解除分配的详细信息。 此参数为可选参数,默认值为 allocator<pair<const Key, Type> >。
4. 成员函数
| 成员函数 | 说明 |
|---|---|
| at | 查找具有指定键值的元素。 |
begin | 返回一个迭代器,此迭代器指向 map 中的第一个元素。 |
| cbegin | 返回一个常量迭代器,该迭代器指向中的第一个元素 map 。 |
| cend | 返回一个超过末尾常量迭代器。 |
clear | 清除 map 的所有元素。 |
| containsC + + 20 | 检查中是否存在具有指定键的元素 map 。 |
count | 返回映射中其键与参数中指定的键匹配的元素数量。 |
| crbegin | 返回一个常量迭代器,该迭代器指向反向中的第一个元素 map 。 |
| crend | 返回一个常量迭代器,该迭代器指向反向中最后一个元素之后的位置 map 。 |
emplace | 将就地构造的元素插入到中 map 。 |
| emplace_hint | 使用位置提示将就地构造的元素插入到中 map 。 |
empty | true 如果为空,则返回 map 。 |
end | 返回超过末尾迭代器。 |
| equal_range | 返回一对迭代器。 此迭代器对中的第一个迭代器指向 map 中其键大于指定键的第一个元素。 此迭代器对中的第二个迭代器指向 map 中其键等于或大于指定键的第一个元素。 |
erase | 从指定位置移除映射中的元素或元素范围。 |
find | 返回一个迭代器,该迭代器指向中其 map 键与指定键相等的元素的位置。 |
| get_allocator | 返回用于构造 allocator 的 map 对象的副本。 |
insert | 将一个或一系列元素插入到 map 中的指定位置。 |
| key_comp | 返回用于对中的键进行排序的比较对象的副本 map 。 |
| lower_bound | 返回一个迭代器,该迭代器指向中其 map 键值等于或大于指定键的键值的第一个元素。 |
| max_size | 返回 map 的最大长度。 |
| rbegin | 返回一个迭代器,此迭代器指向反向 map 中的第一个元素。 |
| rend | 返回一个迭代器,该迭代器指向反向中最后一个元素之后的位置 map 。 |
size | 返回 map 中的元素数量。 |
swap | 交换两个映射的元素。 |
| upper_bound | 返回一个迭代器,该迭代器指向中其 map 键值大于指定键的键值的第一个元素。 |
| value_comp | 检索用于对 map 中的元素值进行排序的比较对象副本。 |
5. 运算符
| 名称 | 说明 |
|---|---|
| operator[] | 将元素插入到具有指定键值的映射。 |
| operator= | 将一个映射中的元素替换为另一映射副本。 |
示例链接https://docs.microsoft.com/zh-cn/cpp/standard-library/map-class?view=msvc-160
本文详细介绍了C++标准模板库中的Map容器,包括其基本概念、语法、成员函数及运算符,并对比了Map与Multimap的区别。此外还提供了示例链接帮助理解。
2万+

被折叠的 条评论
为什么被折叠?



