管理元素集合的STL容器大致分为两类。一类是有顺序的集合,称为序列式容器;另一类是经过排序的集合,称为关联式容器。
序列式容器会将新添加的元素置于特定为位置,这个位置由插入的时间和地点决定,与元素本身的值无关。前面介绍过的vector和list就是很有代表性的序列式容器。
相对地,关联式容器会依据特定的排序标准来决定要添加的元素的位置。STL为用户提供了set、map、multiset、multimap容器。
关联式容器会在管理数据的过程中,自动给元素排序。虽然序列式容器也能进行排序,但是关联式容器的优势在于,开源随时采用二分搜索法,搜索元素的效率极高。
map是以键与值的组合为元素的集合。每个元素拥有一个键和一个值,集合以键作为排序标准。这里的map和python中的dict类似,各元素的键唯一,不存在重复。map可以看作是一种能使用任意类型元素作为下标的关联式容器。
map的用法:
| 函数名 | 功能 | 复杂度 |
| size() | 返回map中的元素数 | O(1) |
| clear() | 清空map | O(1) |
| begin() | 返回指向map开头的迭代器 | O(1) |
| end() | 返回指向map末尾的迭代器 | O(1) |
| insert((key, value)) | 向map中插入元素(key, value) | O(logn) |
| erase(key) | 删除键值为key的元素 | O(logn) |

最低0.47元/天 解锁文章
689

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



