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

相关推荐
狐璃同学9 分钟前
数据结构(2)线性表
数据结构·算法
AI是这个时代的魔法21 分钟前
Unpack Nested Data:照亮你的数据结构
数据结构·python
这是程序猿27 分钟前
mysql的安装教程
java·人工智能·windows·mysql
爱学习的小囧41 分钟前
VMware ESXi 双管理网口配置全教程:新增 vmk1 端口 + 主备冗余 / 负载均衡双模式实操
运维·服务器·网络·windows·负载均衡·虚拟化
菜鸟丁小真1 小时前
LeetCode hot100-79.单词搜索
数据结构·算法·leetcode·深度优先·知识总结
xiaoshuaishuai81 小时前
【无标题】
开发语言·windows·c#
y = xⁿ1 小时前
20天速通LeetCodeday09:关于链表
数据结构·链表
Queenie_Charlie1 小时前
关于二叉树
数据结构·c++·二叉树
王江奎1 小时前
Windows 跨平台 C/C++ 项目中的 UTF-8 路径陷阱
c++·windows·跨平台
minji...1 小时前
Linux 网络套接字编程(三)UDP服务器与客户端实现:Windows与Linux通信,新增字典翻译功能的 UDP 通信
linux·服务器·开发语言·网络·windows·算法·udp