c++ map
在了解map之前,你或许需要先了解pair
map函数
c++ 中,<map>
是标准模板库(STL)的一部分,它提供了一种关联容器,用于存储键值对(key-value pairs),并且根据键(key)自动排序的容器。map不允许键重复,每个键在map中只能出现一次。map容器的每一个元素都是一个pair结构(pair<t1,t2>)的数据。
创建map
- 创建空map
1 |
|
创建了一个空map,键的类型为int,值类型为string
2. 继承一个map
1 |
|
myMap2创建时,就包括了myMap1的全部内容。
常用函数
1 |
|
map元素添加,修改与删除
添加元素
- pair方式添加
1 |
|
- make_pair 方式添加
1 |
|
- 以数组的方式添加或修改
1 |
|
这种方法在键值已存在时更新对应的值,在键不存在时插入新的键值。
修改元素
- 数组下标操作符
- 使用find方法和迭代器
首先使用find()函数查找键在map中的位置,若键值在map函数中存在,find()会返回键值在map函数中的迭代器,若键值在map中不存在,find()会返回end迭代器。
end迭代器并不指向map中的任何元素,而是作为一个标记,表示容器的末尾,即容器中最后一个元素之后的位置。这是一个通用的约定,用于标识范围的结束,而不仅仅是在 std::map 中。因此,当 find 方法返回 end 迭代器时,这意味着在 map 中没有找到具有指定键的元素。
1 |
|
删除操作
1 |
|
指定键的排序顺序
std::map
默认是按照键(key)的升序进行排序的。
在创建map时,你可以通过提供比较函数或仿函数来自定义map的排序规则。
1 |
|
pair结构
pair 通常用于将两个值组合成一个单一的实体,以便可以作为一个整体进行传递或返回。std::pair 的两个元素可以是任何类型,包括基本数据类型(如 int、double 等)或自定义类型(如类、结构体等)。这两个元素分别被称为 first
和 second
使用方法是先包含头文件:#include <utility>
定义和使用 std::pair:
1 |
|
使用 make_pair 函数创建 std::pair对象:
1 |
|
c++ map
http://blog.ulna520.com/2024/07/23/c++ map/