容器学习整理
容器分两种:顺序容器和关联容器(所有的容器都是类模板)
顺序容器:顺序容器内的元素按其位置存储和访问
顺序容器:|vector类型:支持快速随机访问
|list类型:支持快速插入/删除
|deque类型:双段队列
顺序容器适配器:|stack:后进先出栈
|queue:先进先出队列
|priority_queue:有优先级管理的队列
存储方式 | 操作方式 | |
vector | 在内存中分配一块连续的空间进行存储,若超过这个空间则再次分配一块内存 | 从后面快速的插入与删除,直接访问元素 |
list | 非连续的内存空间 | 双链表,从任何地方快速插入与删除 |
deque | 连续的存储空间,实际是在堆上分配了一块一块的动态存储区,每一块动态存储区本身是连续的。 | 从前面或后面快速的插入与删除,直接访问任何元素 |
关联容器:关联容器的元素按键(key)排序
关联容器:|map类型:键-值对的集合 map<string, int> word_count;
|set类型:键的集合 set<string> iset;
|multimap类型:一个键对应多个值的集合 multimap<string, string> authors;
|multiset类型:允许重复的键的集合 multiset<string> iset;