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存放内存

相关推荐
程序猿阿伟2 小时前
《Apple Silicon与Windows on ARM:引擎原生构建与模拟层底层运作深度解析》
arm开发·windows
数智工坊2 小时前
【数据结构-栈】3.1栈的顺序存储-链式存储
java·开发语言·数据结构
软件资深者2 小时前
游戏组件DirectX修复工具(DirectX Repair)v4.4增强版
windows·游戏·电脑·系统修复
执着2593 小时前
力扣102、二叉树的层序遍历
数据结构·算法·leetcode
元亓亓亓3 小时前
考研408--数据结构--day5--栈与队列的应用
数据结构·考研··408·队列
By北阳3 小时前
Windows 系统中 存储信息加载异常的表现,所有数值都显示为 “0000000” 乱码
windows
小高Baby@3 小时前
Golang中面向对象的三大特性之多态的理解
数据结构·golang
dazzle3 小时前
Python数据结构(十五):归并排序详解
数据结构·python·算法
.ZGR.3 小时前
认识数据结构:图——无人机防空平台的“衍生品”
java·开发语言·数据结构
晚风吹长发3 小时前
初步了解Linux中的线程同步问题及线程安全和死锁与生产消费者模型
linux·运维·服务器·开发语言·数据结构·安全