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

相关推荐
晚风吹长发5 小时前
初步了解Linux中的命名管道及简单应用和简单日志
linux·运维·服务器·开发语言·数据结构·c++·算法
私人珍藏库6 小时前
[Windows] 桌面整理 Desk Tidy v1.2.3
windows·工具·软件·win·多功能
C++ 老炮儿的技术栈6 小时前
不调用C++/C的字符串库函数,编写函数strcpy
c语言·开发语言·c++·windows·git·postman·visual studio
夏乌_Wx6 小时前
练题100天——DAY42:移除链表元素 ★★☆☆☆
数据结构
weixin_462446236 小时前
Linux 下使用 xfreerdp3 远程连接 Windows(从安装到实战使用)
linux·运维·windows
Traced back8 小时前
# Windows窗体 + SQL Server 自动清理功能完整方案优化版
数据库·windows·.net
软件资深者10 小时前
HP M126a打印机,系统不支持请求的命令或者资源管理器出错
windows·windows11·系统修复
SJjiemo10 小时前
TreeSize Pro 专业磁盘空间分析
windows
学嵌入式的小杨同学10 小时前
【嵌入式 C 语言实战】交互式栈管理系统:从功能实现到用户交互全解析
c语言·开发语言·arm开发·数据结构·c++·算法·链表
多米Domi01110 小时前
0x3f 第40天 setnx的分布式锁和redission,写了一天项目书,光背了会儿八股,回溯(单词搜索)
数据结构·算法·leetcode