当前位置: 首页 > news >正文

list和vector的区别

空间上

list的底层是 一个个节点链接起来的,自然是不连续的空间。 vector的底层是3个指针共同维护的一段连续的空间

vector:连续空间,不易造成内存碎片,空间利用率高。

list:结点不连续,易造成内存碎片,小元素结点密度低,空间利用度低。

迭代器

 list的迭代器不是随机迭代器,无法对迭代器进行 += , + , - , -= 等操作,因此list要使用sort只能使用自己的sort, 但是list进行sort排序的效率极低,甚至不如将数据拷贝到vector并用vector排好后再重新存到list中的效率。

vector的迭代器是随机迭代器,因此可以直接用sort排序且效率不错

list的迭代器是对节点的封装,vector的迭代器 本质上是 一个指针

适用场景

list常常适用于 频繁进行头插,头删,且频繁对数据进行删除和插入的情形。

vector常常适用于 尾插 , 尾删 , 常常对数据进行访问的情形。


http://www.mrgr.cn/news/27097.html

相关文章:

  • 在 Mac 中设置环境变量
  • 性能测试的复习4-数据库连接、控制器、定时器
  • Spring Cloud常见面试题
  • 初学者指南:如何在Windows 11中自定义任务栏颜色,全面解析!
  • 【C#生态园】从基础到深度学习:探索C#机器学习库
  • Stream流的思想和获取Stream流
  • 共享单车轨迹数据分析:以厦门市共享单车数据为例(四)
  • 加速开发体验:为 Android Studio 设置国内镜像源
  • JavaScript --函数的作用域(全局和局部)
  • 测试质量体系的风险评估和应对措施有哪些
  • GO Server-Sent Events (SSE)
  • Cache Aside pattern
  • USB组合设备——鼠标+键盘(两个接口实现)
  • elementui组件el-upload实现批量文件上传
  • Unity生命周期_一些容易忽略的点>重复的生命周期代码会执行子类的。
  • thinkphp6开发的通用网站系统源码
  • 明天考教资之作文素材
  • union和union all的区别,别再傻傻分不清楚了!
  • Python 爬虫入门 - 爬虫 requests 请求
  • 空间视频化趋势理解