c++ list, vector,deque, map,set 区别与用法比较

浅谈C++容器(一):三种序列容器vector、list、deque的区别 在C++实际开发过程中,经常需要实现数据的添加、修改、插入、读取等功能,若程序员自己编写一个数据结构来实现,不仅会增加代码的工作量,还会出现许多需要解决的问题。而容器是一种封装了数据结构的类,可实现各种功能,帮助程序员更好地开发。 常用的标准容器可分为两大类,序列容器和关联容器。本文先浅谈序列容器的分类、特点及使用情况,希望帮助开发者选择最合适的容器。 一、分类 序列容器可分为三种,vector向量容器、list列表容器、deque双端队列容器,如下: vector向量容器:可看作一个动态数组,连续存储结 阅读详情

c++ list, vector,deque, map,set 区别与用法比较

1  vector:[pos]侧重于随机访问速度
2  list
:  侧重于增加删除数据的速度,对数据中间的增删操作比较多,可排序

3  deque:[pos]分段连续内存,即需要前后增删数据的能力,又要良好的数据访问速度

4  set: 二叉树,自定义排序,find查找速度

5  map: [key]二叉树,自定义排序,find查找速度,键值对

List封装了链表, 链表形式实现, 不支持[]

插入删除就快的多了,不需要拷贝和移动数据,只需要改变指针的指向就可以了。

Vector封装了数组, 连续内存存储的,支持[]。

随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快。

Deque融合了list和vector的优点:随机访问与头尾删除插入效率都很高,但是在中间操作的效率很低.

Queue 是受限制的deque,内部容器一般使用list较简单。先进先出,不允许遍历

Map,Set属于标准关联容器,使用了非常高效的平衡检索二叉树:红黑树,他的插入删除效率比其他序列容器高是因为不需要做内存拷贝和内存移动,而直接替换指向节点的指针即可。

【C++:STL库简介/顺序容器/关联容器】 STL标准模板库核心组件解析 摘要:STL(标准模板库)是C++的核心组件,包含六大模块:容器(如vector、deque、list等顺序容器和set/map等关联容器)、迭代器(泛型指针)、适配器、仿函数、算法和配置器。顺序容器中,vector作为动态数组支持高效随机访问但中间插入/删除较慢;deque支持双端操作;list基于链表实现任意位置快速操作。关联容器set/map通过红黑树实现自动排序和去重,而unordered_set/map采用哈希表实现更快查询。重要特性包括:vector的reserve 阅读详情

相关推荐

C++STL中list, vector, map, set用法与区别

List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]。 Vector与list Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快。 List对于随机访问速度慢得多,因为可能要遍历整个链表才能做到,但是对于插入就快的多了,不需要...

HeiRen 1744

C++学习——Deque(双向队列)和List

双向队列是一种优化的,可以对序列两端进行添加和删除的序列容器,在随机访问上效率也比较高,存储的方式采用的是多个连续的存储块,两端添加和删除的开销很小 双向队列和List的对比特点: Deque的特点: (1)随机访问方便,即支持[ ]操作符和vector.at(),但性能没有vector好; (2)可以在内部进行插入和删除操作,但性能不及list; (3)可以在两端进行push、pop; (4)相对于verctor占用更...

m0_37876745的博客 899

Ubuntu使用gstreamer开发USB相机应用(一)

Ubuntu使用gstreamer开发USB相机应用(一) 包括:gstreamer安装,测试。使用v4l2测试USB相机。使用gstreamer采集相机

Alon1787的博客 2735

C++三种容器:list、vector和deque的区别

在写C++程序的时候会发现STL是一个不错的东西,减少了代码量,使代码的复用率大大提高,减轻了程序猿的负担。还有一个就是容器,你会发现要是自己写一个链表、队列,或者是数组的时候,既要花时间还要操心怎么去维护,里面的指针啊,内存够不够用啊,长度问题,有没有可能溢出啊等等一系列的问题等着我们去解决,还是比较头疼的。所以容器的出现解决了这一个问题,它将这些数据结构都封装成了一个类,只需要加上头文件,我们就可以轻松的应用,不用那么复杂,就连指针也被封装成了迭代器,用起来更方便,更人性化,方便了我们的编程,对于程序员

好习惯成就伟大 1549

ArcGIS+PLUS+InVEST三件套实战:从零搞定土地利用变化与碳储量预测(附完整数据包)

本文详细介绍了如何整合ArcGIS、PLUS模型和InVEST模型,构建土地利用变化与碳储量预测的完整研究流水线。通过多情景模拟和生态系统服务评估,提供从数据准备到结果验证的实战指南,助力研究者高效完成生态评估项目。

weixin_30399821的博客 541

TortoiseSVN的安装与使用

TortoiseSVN的安装与应用1、安装1.1、下载TortoiseSVN    点击下载TortoiseSvn1.2、下载汉化包。上面的页面中,找到Chinese, simplified汉化包,点击32位或者64位的Setup,下载汉化包。1.3、安装TortoiseSVN。在选择安装路径页面时要记得勾选“command line client tools”,默认不是勾选的。这里不勾选的话在I...

qq_28566071的博客 4万+

C++各个容器比较(vector,deque,list,set,map,queue,stack)

1、vector(连续的空间存储,可以使用[ ]操作符)可以快速的访问随机的元素,快速的在末尾插入元素,但是在序列中间随机的插入、删除元素要慢。而且,如果一开始分配的空间不够时,有一个重新分配更大空间的过程。     2、deque(小片的连续,小片间用链表相连,实际上内部有一个map的指针,因为知道类型,所以还是可以使用[ ],只是速度没有vector快)快速的访问随机的元素,快速的在开始和末

Lyu-ming 栏目 2399

AUTOSAR从入门到精通-汽车电子电气架构(EEA)

EEA(Electrical/Electronic Architecture),电子电气架构,是首先由德尔福公司提出的,集合汽车的电子电气系统原理设计、中央电器盒的设计、连接器的设计、电子电气分配系统等设计为一体的整车电子电气解决方案的概念。通过EEA的设计,可将动力总成、驱动信息、娱乐信息等车身信息转化为实际的电源分配的物理布局、信号网络、数据网络、诊断、容错、能量管理等的电子电气解决方案。

getusushu的博客 857

C++STL容器 ---- 顺序容器之deque、list

顺序容器2---deque:双端队列 1、Deque(doubled-ended queue)是一种具有队列和栈的性质的数据结构。双端队列中的元素可以从两端弹出,其限定插入和删除操作在表的两端进行。 底层数据结构:动态开辟的二维数组,和vector的底层数据结构不同,deque的第二维是按固定大小开辟的,内存扩容时,扩容第一维的数组空间,每次按原空间2倍方式进行扩容,然后把第二维...

Disremembrance的博客 1020

2026年【江苏“信息与未来”编程思维】真题及题解(T6:桌面游戏)

2026年【江苏“信息与未来”编程思维】真题及题解(T6:桌面游戏)

王老师青少年编程 532

手把手教你完成基于cnn的手写数字识别系统MATLAB语言

手写数字识别是经典的 CNN 分类应用之一,常用的数据集就是 MNIST 手写数字数据集,包含 0~9 这 10 个数字的手写图片,每个数字都由 6 万幅训练图像和 1 万幅测试图像构成。为了便于直观分析,这里选择 MATLAB 工具箱提供的 DigitDataset 进行训练识别,读者也可以直接利用 MNIST 数据集或者自己设计的数据集进行实验。其中,数据集文件夹 db 如图 所示。在数据集文件夹 db 里面对每个数字都建立了子文件夹,各自包含 1000 幅 28×28 大小的二维灰度图像。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1368

c++ list, vector, map, set 区别与用法比较

List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]。 Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快。List对于随机访问速度慢得多,因为可能要遍历整个链表才能做到,但是对于插入就快的多了,不需要拷贝和移动数据,只需要

keep moving 5万+

飞牛fnNAS搭建Web网页版OFFICE(WPS)软件

本文介绍了如何在飞牛NAS上通过Docker容器部署WPS Office办公软件。主要内容包括:启用Docker服务、准备项目文件夹结构、使用Compose方式构建容器、解决端口冲突问题、配置中文输入法和字体库,以及通过ZeroTier实现远程访问。文章详细说明了每个步骤的操作方法,包括容器启动、输入法设置、字体添加和文件存储位置配置。最后还介绍了使用ZeroTier内网穿透技术实现远程访问NAS上WPS服务的方法,让用户可以在不同设备上随时编辑NAS中的文件。整个部署过程完整清晰,为NAS用户提供了便捷的

dgnankai的专栏 1698

c++(vector、map、list、deque、set)总结-面试

C++中有两种类型的容器:顺序容器和关联容器。顺序容器主要有vector、list、deque等。其中vector表示一段连续的内存,基于数组实现,list表示非连续的内存,基于链表实现,deque与vector类似,但是对首元素提供插入和删除的双向支持。关联容器主要有map和set。map是key-value形式,set是单值。map和set只能存放唯一的key,multimap和multiset可以存放多个相同的key。

m0_67794241的博客 1195

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

C++中 vector、list、deque、set、map的底层实现

stl容器区别: vector list deque set map-底层实现 stl容器区别: vector list deque set map (转) 在STL中基本容器有: vector、list、deque、set、map set 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问 set:集合, 用来判断某一个元素是不是在一个组里面,使

1万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

C++中list, vector, map, set 区别与用法比较

准模板库就是类与函数模板的大集合。STL共有6种组件:容器,容器适配器,迭代器,算法,函数对象和函数适配器:vector封装数组,list封装了链表,map和set封装了二叉树。 一、序列容器:基本的序列容器是上面途中的前三类   List封装了链表,Vector封装了数组,list和vector的最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]。   Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾.

EASY_Artoria的博客 1352

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

c++ vector,list,deque,map,set,hash_map 特点及区别

List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]。 Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快。List对于随机访问速度慢得多,因为可能要遍历整个链表才能做到,但是对于插入就快的多了,不需要拷贝和移动数据,只需要改变...

积累点滴,保持自我 895

C++核心deque容器,stack容器,queue容器,list容器,set容器,pair ,map容器

Vector容器是单向开口的连续内存空间,deque则是一种双向开口的连续线性空间。所谓的双向开口,意思是可以在头尾两端插入元素,但是在其头部操作效率奇差,无法被接受。deque容器和vector容器最大的差异,一在于deque允许对头端进行元素的插入和删除操作。二在于deque没有容量的概念,因为它是动态的以分段连续空间组合而成,随时可以增加一段新的空间并链接起来,换句话说,像vector那样,“旧空间不足而重新配置一块更大空间,然后复制元素,再释放旧空间”这样的事情在deque身上时不会发生的。

qq_45890351的博客 1833

C++ STL之容器介绍(vector、list、set、map)

STL(Standard Template Library)即标准模板库。STL通过使用模板实现了容器和算法的分离,允许程序员编写与类型无关的代码,这正是泛型编程的核心思想。

new9232的博客 1600

C++中STL常用容器(vector、deque、list、map、set)一文带你了解

一、vector容器(向量) vector属于序列容器,序列是对基本容器的一种改进,在保持其基础功能上增加一些我们需要的更为方便的功能。要求序列的元素必须是严格的线性顺序排序。因此序列中的元素具有确定的顺序,可以执行将值插入到特定位置、删除特定区间等操作。下面要说明的deque、list同样属于序列(也叫顺序)容器。vector是动态数组,在内存中具有连续的存储空间,支持快速随机访问。由于具有连续的存储空间,所以在插入和删除操作方面,效率比较慢。 /* * @Author: Stylle * @Date

凉开水白菜的博客 1644

c++ set map list vector deque区别

stl容器区别: vector list deque set map-底层实现 stl容器区别: vector list deque set map (转) 在STL中基本容器有: vector、list、deque、set、map set 和map都是无序的保存元素,只能通过它提供的接口对里面的元素进行访问 set:集合, 用来判断某一个元素是不是在一个组里面,使

hello小工的专栏 686

C++ STL常用容器:string、vector、deque、stack、queue、list、set/multiset、map/multimap

文章目录1 string容器1.1 string基本概念1.2 string构造函数1.3 字符串长度【size()、length()、strlen()】1.4 string赋值操作【operator=、assign()】1.5 string字符串拼接【operator+=、append()】1.6 string查找【find()、rfind()】和替换【replace()】1.7 string字符串比较【compare()】1.8 string字符存取【operator[]、at()】1.9 string

NewsomTech 1534
上一篇: 一般函数指针和类的成员函数指针
LYU的春天
博客等级 码龄14年 0粉丝 1原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值