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

相关推荐
2301_764441333 小时前
LISA时空跃迁分析,地理时空分析
数据结构·python·算法
韭菜钟4 小时前
WIndows下一键切换网卡IP脚本
windows·网络协议·tcp/ip
玉树临风ives4 小时前
atcoder ABC 452 题解
数据结构·算法
Dontla5 小时前
go语言Windows安装教程(安装go安装Golang安装)(GOPATH、Go Modules)
开发语言·windows·golang
无敌昊哥战神6 小时前
深入理解 C 语言:巧妙利用“0地址”手写 offsetof 宏与内存对齐机制
c语言·数据结构·算法
XH华7 小时前
数据结构第九章:树的学习(下)
数据结构·学习
liliangcsdn8 小时前
mstsc不在“C:\Windows\System32“下在C:\windows\WinSxS\anmd64xxx“问题分析
开发语言·windows
会编程的土豆8 小时前
【数据结构与算法】再次全面了解LCS底层
开发语言·数据结构·c++·算法
低频电磁之道8 小时前
解决 Windows C++ DLL 导出类不可见的编译错误
c++·windows