目录
容器的分类
- 序列式 sequence container
array 固定长度
vector 能在后部插入元素
deque 两边都能插入元素,但是技术上不易描述
list 双向链表
forward-list 单向链表
- 关联式 associative container
实现一个快速的查找
set/multiset map/multimap 底部使用红黑树(高度平衡,自动平衡)
set和map的差别,map每一个结点有key value,而set中key就是value
multi和non-multi的区别,multi表示key可以重复,没multi表示key无法重复
例如,存储学生信息用身份证号当主键可以使用map
- 无序容器 unordered container C++11
unordered_set unordered_map multiset multimap
底层使用hashtable,hash碰撞时使用链表的做法(公认是效率较高的解决办法
array测试程序
- .data()函数
写下array的首地址
vector测试程序
-
find()返回iterator类型,用*来取值,是循序查找,遍历数组
-
.capacity() 获得当前容量,由于vector容量的开辟时*2的类型的,所以会有一个capacity