list和vector的区别

1>list可以按值删除

vector和deque没有给定的函数,需要find();和erase();一起使用才能做到

2>list删除元素会释放空间,vector不会

3>list是双向迭代器,vector是随机迭代器

4>list内部排序是指针指向的更改,vector涉及对象的创建和销毁

5>vector改变元素,导致迭代器失效

deque删除的时候不会导致迭代器失效(非迭代器位置),插入会导致迭代器失效

list删除元素导致当前迭代器失效,不影响其他迭代器

6>vector是连续存储容器,动态数组

list是动态双向链表

7>vector连续空间,不容易产生内部碎片

list节点不连续,容易造成内部碎片,空间利用率低

8>vector访问具有局部性,存放高速缓存

list存放内存

相关推荐
一条大祥脚11 分钟前
ABC357 基环树dp|懒标记线段树
数据结构·算法·图论
苦藤新鸡22 分钟前
50.腐烂的橘子
数据结构·算法
无限进步_23 分钟前
面试题 02.02. 返回倒数第 k 个节点 - 题解与详细分析
c语言·开发语言·数据结构·git·链表·github·visual studio
Hello World . .43 分钟前
数据结构:栈和队列
c语言·开发语言·数据结构·vim
Yvonne爱编码1 小时前
JAVA数据结构 DAY1-集合和时空复杂度
java·数据结构·python
面对疾风叭!哈撒给2 小时前
Windows 系统使用NSSM创建 Windows服务
windows
近津薪荼2 小时前
优选算法——双指针8(单调性)
数据结构·c++·学习·算法
f狐0狸x2 小时前
【C++修炼之路】C++ list容器基本用法详解
开发语言·c++·list
松☆2 小时前
Dart 中的常用数据类型详解(含 String、数字类型、List、Map 与 dynamic) ------(2)
数据结构·list
MyBFuture2 小时前
C#数组详解:一维二维与交错数组
开发语言·windows·c#·visual studio·vision pro