STL体系结构与各容器基本介绍
- STL体系结构
- 基本容器
- 序列式
- 关联式(查找更快)
- 其他(不常用)
- 使用分配器
STL体系结构
六大模块
- 容器
- 算法
- 迭代器
- 适配器
- 仿函数
- 分配器
基本容器
序列式
- array c++11新标准
array<类型,大小> a;
大小固定 - vector 扩容以两倍增长,找到两倍大空闲内存,将自己挪到新内存
- list 双向链表有自己的sort,比用算法sort更快
- forward_list c++11新标准 单向链表,只有push_front,效率更高 同gnu slist
- deque 双端队列 分段连续,每次扩充一段
- stack,queue 借用deque,是容器适配器
关联式(查找更快)
- multiset key就是value,key可重复,底层实现是红黑树,有自己的find()函数
- multimap key,value对,insert时需要自己构建pair,红黑树实现不可用[]
- unordered_multiset 可重复,底层实现是哈希表,元素个数大于等于篮子个数,就需要扩充,变为二倍
- unoredered_multimap key可重复 哈希表实现
- set 不可重复,红黑树
- map key不可重复 哈希表 可用[]
c[i]
- unoredered_set 可重复,哈希表
- unoredered_map 可重复,哈希表
其他(不常用)
- heap
- priority_queue
使用分配器
一般用默认的,但是可以自己包含头文件使用