STL(2)

发布时间 2023-09-04 16:27:58作者: LiviaYu

容器的分类

  1. 序列式 sequence container

array 固定长度

vector 能在后部插入元素

deque 两边都能插入元素,但是技术上不易描述

list 双向链表

forward-list 单向链表

  1. 关联式 associative container

实现一个快速的查找
set/multiset map/multimap 底部使用红黑树(高度平衡,自动平衡)

set和map的差别,map每一个结点有key value,而set中key就是value

multi和non-multi的区别,multi表示key可以重复,没multi表示key无法重复
例如,存储学生信息用身份证号当主键可以使用map

  1. 无序容器 unordered container C++11

unordered_set unordered_map multiset multimap

底层使用hashtable,hash碰撞时使用链表的做法(公认是效率较高的解决办法

array测试程序

  • .data()函数
    写下array的首地址

vector测试程序

  • find()返回iterator类型,用*来取值,是循序查找,遍历数组

  • .capacity() 获得当前容量,由于vector容量的开辟时*2的类型的,所以会有一个capacity