C++算法与数据结构之map

管理元素集合的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)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值