c++ list vector map set 简单区别_vector clist-程序员宅基地

技术标签: c++  set  vector  list  map  

List封装了链表,Vector封装了数组, list和vector得最主要的区别在于vector使用连续内存存储的,他支持[]运算符,而list是以链表形式实现的,不支持[]。

Vector对于随机访问的速度很快,但是对于插入尤其是在头部插入元素速度很慢,在尾部插入速度很快。List对于随机访问速度慢得多,因为可能要遍历整个链表才能做到,但是对于插入就快的多了,不需要拷贝和移动数据,只需要改变指针的指向就可以了。另外对于新添加的元素,Vector有一套算法,而List可以任意加入。
Map,Set属于标准关联容器,使用了非常高效的平衡检索二叉树:红黑树,他的插入删除效率比其他序列容器高是因为不需要做内存拷贝和内存移动,而直接替换指向节点的指针即可。
Set和Vector的区别在于Set不包含重复的数据。Set和Map的区别在于Set只含有Key,而Map有一个Key和Key所对应的Value两个元素。
Map和Hash_Map的区别是Hash_Map使用了Hash算法来加快查找过程,但是需要更多的内存来存放这些Hash桶元素,因此可以算得上是采用空间来换取时间策略。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/taitoubiyan1/article/details/78272633

智能推荐

全docker化gitlab及CI - in_finity的个人空间 - 开源中国_docker exec gitlab gitlab-ctl status-程序员宅基地

文章浏览阅读330次。##Docker安装curl -fsSL https://get.docker.com/ | sudo sh # 安装最新版的dockersudo mkdir /etc/dockerecho ‘{“registry-mirrors”: [“https://docker.mirrors.ustc.edu.cn”]}’ | sudo cat > /etc/docker/daemon.js..._docker exec gitlab gitlab-ctl status

pdf.js 在线浏览pdf组件构建与安装注意事项_pdf.js v2.2.150 (build: 55d9b35d)-程序员宅基地

文章浏览阅读6k次。PDF.js v1.8.188 (build: ad1023ff)Message: file origin does not match viewer's4.注意1.如果web服务器是iis,请添加.properties的MIME类型为application/octet-stream, 否则本地化无法启用,默认语言为英文。2.pdf.js_pdf.js v2.2.150 (build: 55d9b35d)

语音信号去混响(dereverberation)最新研究总结——附论文与代码_a two-stage algorithm for one-microphone-程序员宅基地

文章浏览阅读8.7k次,点赞14次,收藏94次。语音信号去混响是语音降噪的一种方法,本文现将至2020年7月经典的算法总结如下。算法目录1. SPENDRED (SPeech ENhancement and DeREverberation by Doire)2. Two-stage algorithm by DeLiang Wang's Group3. About This Dereverberation Business: A Method for Extracting Reverberation from Audio Signals4. Exem_a two-stage algorithm for one-microphone

剑指offer面试题11-20_设置一个缓冲数组buff【】,将do while改成for循环,然后在每一次case中将数据存储-程序员宅基地

文章浏览阅读190次。11二进制中1的个数输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。思想://定义一个标志位flag,依次将flag向左移位,然后与数组的数字进行按位& //如果按位与的结果为1则说明输入数的二进制位的值为1 //直到移位到最左端(int 32位)class Solution {public: int NumberOf1(int n) {..._设置一个缓冲数组buff【】,将do while改成for循环,然后在每一次case中将数据存储

MacOS 软件 Adobe Illustrator 2022 - AI 安装使用详细教程_anticc-程序员宅基地

文章浏览阅读3.8k次。在你的 Mac 上安装 Adobe Illustrator 2022 详细教程,附带相关文件_anticc

pandas 数据分析 相关性_pandas数据分析-程序员宅基地

文章浏览阅读2.1k次。pandas创建文件DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引,它可以被看做由series组成的字典(共用同一个索引)set_index( ) 将 DataFrame 中的列转化为行索引。默认的,当列变成行索引之后,原来的列就没了,但是可以通过设置drop来保留原来的列。to_excel()..._pandas相关性分析

随便推点

JUnit 5和JUnit 4比较_junit4和5-程序员宅基地

文章浏览阅读966次。JUnit 5旨在调整java 8样式的编码,并且比JUnit 4更强大和灵活。在这篇文章中,JUnit 5 vs JUnit 4,我们将关注junit 4和junit 5之间的一些主要差异。1. JUnit 5 vs JUnit 4 - 注释两个版本中的大多数注释都是相同的,但很少有区别。这是一个快速比较。特征 JUNIT 4 JUNIT 5 声明一种测试方法 ..._junit4和5

msfconsole安装配置-程序员宅基地

文章浏览阅读1.1w次,点赞2次,收藏7次。使用curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall && \ chmod 755 msfinstall && \ ./msfinstall安_msfconsole安装

OPENTLD学习总结-程序员宅基地

文章浏览阅读3.2k次,点赞4次,收藏11次。OPENTLD是捷克的一个博士开发的一个长时间对运动目标进行跟踪的算法。算法由三部分构成:1、Tracking 2、Detection 3、Learning。1:Tracking:用median_flow_LK进行跟踪。但是因为部分遮挡、运动目标移出视线范围等因素long-term进行跟踪将使得跟踪失败。2:Detection:利用semi_supervised方法训练一个on-line _opentld

JDK1.8新特性(四):接口、线程安全的时间与注解_jdk1.8线程控制注解-程序员宅基地

文章浏览阅读389次。接口中的默认方法与静态方法线程安全的时间格式化SimpleDateFormat的多线程安全问题解决方案时间类时间戳时间与日期间隔时间校正器:TemporalAdjuster时间格式化:DateTimeFormatter时区处理注解重复注解类型注解接口中的默认方法与静态方法JDK1.8支持在接口中有默认方法与静态方法了,之前接口用只能有抽象方法和静态常量default:修饰接口的默认实现(为了提高兼容性,假如一个接口增加了方法,那么实现类都需要去实现新增的方法,所以添加了默认实现,让以前的实现类不需._jdk1.8线程控制注解

【点灯鼠教程】[Maixpy]+[vofa+]实现K210串口图传【POST提交图片】【使用requests】_k210图传-程序员宅基地

文章浏览阅读2.2k次,点赞2次,收藏17次。写在前面:本篇是图传部分的最后一章PATH2,同时也是K210实现AIOT篇章的开始。本篇将主重分享k210使用requests模块的一些情况。POST(requests)引入requestsrequests是micropyhton为了发挥ESP8266/ESP32等IOT单片机联网能力而提供的一个库。通过requests,可以实现HTTP/HTTPS的六种常用指令。实际上在K210上,官方固件是不含requests模块的(毕竟K210自己没有网卡),相应的提供了一个名为MicroWebCli的_k210图传

MySql group_concat()去重及自定义连接符_group_concat 去重-程序员宅基地

文章浏览阅读2.5w次,点赞4次,收藏2次。group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator ‘分隔符’])group_concat():该函数返回带有来自一个组的连接的非NULL值的字符串结果通俗点理解,group_concat()会计算哪些行属于同一组,将属于同一组的列显示出来。要返回哪些列,由函数参数(就是字段名)决定。分组必须有个标准,就是根据group by指定的列进行分组。-- DISTINCT 将数据去重-- SEPARATOR 自定义数据之间_group_concat 去重

推荐文章

热门文章

相关标签