1. vector
- 🐧
vector
的内存是连续的,支持随机访问;
2. list
- 🐧
list
的底层结构是双向链表,存储是不连续的,随机插入和删除的效率高, - 🐧
list
需要维护两个指针,一个指针指向前一个元素,另外一个指针指向后一个元素,内存消耗大;
3. deque(双端队列)
- 🐧
deque
底层是连续的,可以把deque
看成是vector
和list
的结合版。 - 🐧
deque
提供两级数据结构,第一级完全类似vector
,代表实际容量,另一级维护容器的首位地址;
优点:
<1>支持两端进行插入和删除数据;
<2>支持随机访问;
4. 使用场景
- ⚽①需要随机访问数组并且不需要考虑插入和删除的效率时,使用
vector
; - 🏀②需要频繁的插入和删除操作,并且不需要随机访问,使用
list
; - 🏐③需要随机存储,且关心两端数据的插入和删除操作,则应该使用
deque
;