容器
容器是面向对象的基础,所有面向对象的语言都有容器.
在C++中也就是标准模板库也就是常说的STL.
容器分为三类
顺序容器
顺序容器是元素间有顺序关系的线性表,每个元素都有固定位置.不会提供特点进行排序,元素的顺序和插入的时间位置有关.
关联容器
关联容器以键值的方式来保存数据
容器适配器
这东西其实就是容器的容器,结果还是容器.如果容器时普通类型的模板,那么容器适配器就是容器的模板.
各容器特点
顺序容器
vector 尾插尾删,可以直接访问任何元素
deque 尾(前)插尾(前)删,可以直接访问任何元素
list 在任意位置插入删除元素
关联容器
set 查找元素,不能有重复元素
multiset 查找元素,可以有重复元素
map 一对多映射,基于key快速查找,不允许key重复
multimap 多对多映射,基于key快速查找,允许key重复
容器适配器
stack 先进后出
queue 先进先出
priority_queue 优先级队列,优先级最高的元素最先出列
顺序容器选择
vector是一段连续的内存块,而deque是多个连续的内存