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

相关推荐
周小董1 小时前
[1369]Windows上安装PostgreSQL
数据库·windows·postgresql
doujiaozh1 小时前
Win7 复活记:用 3 个补丁让 13 年前的老电脑跑通 Kimi API
windows
0+1114 小时前
算法 --链表
数据结构·算法·leetcode·链表
夜之眷属6 小时前
PriorityQueue:for-each 遍历和 poll 取出,顺序一样吗?
java·服务器·数据结构·后端·算法
思维新观察7 小时前
三星 Galaxy Tab S12 系列:大屏 AI 平板,兼顾轻薄与生产力
数据结构·人工智能·电脑
bbq烤鸡7 小时前
Win11 资源管理器“白条“修复报告
windows
杜 硕8 小时前
快速排序详解01
数据结构·算法·排序算法
信奥卷王8 小时前
[GESP202606 六级] 满二叉树
数据结构·算法
10mAh8 小时前
【Java】ArrayList 遍历删除为什么报错?三种写法与漏删复现
java·开发语言·windows
念越10 小时前
题库、练习与错题本代码阅读
开发语言·数据结构