容器:各种数据结构,如vertor,list,deque,set,map等,用于存储数据
常用数据结构:数组,链表,树,栈,队列,集合,映射表等。(重点:vertor容器 ; list容器)
序列式容器:强调值的排序,序列式容器中每个元素均为有固定位置
关联式容器:二叉树结构,各元素之间没有严格的物理上序列关系
1.string容器:char*容器,管理字符串
2.vector容器:单端数组,动态扩展
动态扩展:并不是在原空间续接新空间,而是找更大的内存空间,然后将原数据拷贝到新空间,释放原空间
vector迭代器支持随机访问
3.deque容器:双端数组,可以对头端进行插入删除操作
4.stack容器:栈容器,不允许遍历,先进后出
5.quee容器:队列容器,不允许遍历,先进先出
6.list容器:链表,物理存储单元上非连续存储结构,通过链表中指针实现数据逻辑顺序
链表由一系列结点组成(一是存储数据元素的数据域,再是存储下一结点的指针域);
优点:可以对任意位置进行快速插入或删除元素 ,动态储存分配,不会内存浪费溢出
缺点:容器遍历速度没数组快,占用空间大
7.set/multiset 容器:集合容器,所有元素都会在插入是自动排序
本质:关联式容器,底层结构式二叉树实现
区别:set 不允许重复数据;multiset允许重复数据
8.map/multimap容器:所有元素都是pair,都会在插入是自动排序
pair第一元素为key(键值),起索引作用;第二元素为value(实值)
本质:关联式容器,底层结构式二叉树实现
区别:map 不允许重复key值元素;multiset允许重复key值元素