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

相关推荐
算法鑫探8 小时前
闰年判断:C语言实战解析
c语言·数据结构·算法·新人首发
香蕉鼠片8 小时前
跨平台开发到底是什么
linux·windows·macos
木子墨5168 小时前
LeetCode 热题 100 精讲 | 并查集篇:最长连续序列 · 岛屿数量 · 省份数量 · 冗余连接 · 等式方程的可满足性
数据结构·c++·算法·leetcode
2501_921960859 小时前
双相自指图与弦论边界非对易性的结构同源
数据结构
Liangwei Lin9 小时前
洛谷 P3133 [USACO16JAN] Radio Contact G
数据结构·算法
心一信息10 小时前
Windows 计算机管理 · 事件日志完整运维指南
windows
锅挤12 小时前
数据结构复习(第五章):树与二叉树
数据结构
杨凯凡13 小时前
【014】基本类型与包装类:缓存、相等性、NPE
java·数据结构·缓存
故事和你9113 小时前
洛谷-算法1-7-搜索3
数据结构·c++·算法·leetcode·动态规划
想唱rap13 小时前
C++智能指针
linux·jvm·数据结构·c++·mysql·ubuntu·bash