一张表格让你理解vector和list区别
一张表格让你理解vector和list区别
区别 | vector | list |
---|---|---|
数据结构: | 顺序表(动态数组) | 环形双向链表 |
物理空间: | 连续的 | 非连续的 |
内存消耗: | 少 | 多 |
大小可变: | 可变-动态数组 | 可变-通过指针 |
随机存储: | 支持(vector 重载了[]) | 不支持(因为非连续) |
优势: | 支持随机存储 | 任意节点高效的插入、删除等操作 |
劣势: | 插入和删除进行内存拷贝工作 | 不支持随机存取 |
?数据结构对比图:
?那我们怎样选择使用vector和list呢?
在选择该用哪种数据结构的时候,应该遵循这样的原则:
1. 如果只关心随机存取,不在乎插入和删除 ,那么就要考虑vector
2. 如果只关心插入删除,不在意随机存取, 那么就要考虑list
例子
- 处理大量数据时,数据相对固定,不关心排序和中间值插入和删除,只是进行查询和筛选时,选vector。
- 处理顺序发生改变的数据时,数据变化,比如排行榜需要进行换位,插入删除等操作,此时选择list。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
二维码