C++中list、vector、map、set容器有何区别及各自用法详解?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3102个文字,预计阅读时间需要13分钟。
C++ 容器区别:list、vector、map、set+ list + 封装链表,以链表形式实现,不支持[]运算符。+ 对随机访问的速度很慢(需要遍历整个链表)。+ 插入数据很快(不需要复制和移动数据,只需改变指针)。
c++容器list、vector、map、set区别
list
- 封装链表,以链表形式实现,不支持[]运算符。
- 对随机访问的速度很慢(需要遍历整个链表),插入数据很快(不需要拷贝和移动数据,只需改变指针的指向)。
- 新添加的元素,list可以任意加入。
vector
- 封装数组,使用连续内存存储,支持[]运算符。
- 对随机访问的速度很快,对头插元素速度很慢,尾插元素速度很快
- 新添加的元素,vector有一套算法。
map
- 采用平衡检索二叉树:红黑树
- 存储结构为键值对<key,value>
set
- 采用平衡检索二叉树:红黑树
- set中不包含重复的数据
Hash_Map
- 采用hash算法加快查找过程,但需要更多内存存放hash桶元素,是一种采用空间换取时间的策略。
本文共计3102个文字,预计阅读时间需要13分钟。
C++ 容器区别:list、vector、map、set+ list + 封装链表,以链表形式实现,不支持[]运算符。+ 对随机访问的速度很慢(需要遍历整个链表)。+ 插入数据很快(不需要复制和移动数据,只需改变指针)。
c++容器list、vector、map、set区别
list
- 封装链表,以链表形式实现,不支持[]运算符。
- 对随机访问的速度很慢(需要遍历整个链表),插入数据很快(不需要拷贝和移动数据,只需改变指针的指向)。
- 新添加的元素,list可以任意加入。
vector
- 封装数组,使用连续内存存储,支持[]运算符。
- 对随机访问的速度很快,对头插元素速度很慢,尾插元素速度很快
- 新添加的元素,vector有一套算法。
map
- 采用平衡检索二叉树:红黑树
- 存储结构为键值对<key,value>
set
- 采用平衡检索二叉树:红黑树
- set中不包含重复的数据
Hash_Map
- 采用hash算法加快查找过程,但需要更多内存存放hash桶元素,是一种采用空间换取时间的策略。

