C++——STL中三种顺序容器的简要差别「建议收藏」

C++——STL中三种顺序容器的简要差别

大家好,又见面了,我是全栈君。

C++ STL 提供了3个顺序容器 :vector, deque, list

Vector动态数组。支持高速訪问;list双向链表,支持高速插入和删除。

vector 中的元素是顺序存放的。所以随机訪问非常快,可是要插入和删除,这个时间复杂度就非常高了,vector初始化时有一个capacity,假设元素个数超出capacity,那vector就会又一次分配一个新的空间。并把旧值拷贝到新的空间中,释法原空间,这个也要耗费非常多时间,所以假设你知道元素的最大值,最好用reserve()函数初始最大空间,避免又一次分配空间造成的时间。

Deque是双端队列,差点儿全部的操作都和vector一样,出了能够在头加入和删除,多了个push_front(), pop_front()。仅仅有Vector和Deque有下标操作符,list没有。

list 是双链表,元素在内存中是分散的不连续的,它使用指针left,right,指向前一个元素和后一个元素。

所以要删除和加入仅仅要动动指针。所以非常快。可是由于是不连续的所以要訪问一个元素,你仅仅能遍历序列。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/116565.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • android自动化测试框架_GMS测试

    android自动化测试框架_GMS测试GMSP的测试已经开始一段时间了,这里记录一下跟O的不同之处,资料主要来自MTK官网。一、Case数量增加(以Pgo项目为例,64bit项目double)a、CTS测试增加8万条,module增至320b、增加CTS-INSTANT测试项目,module48,1.3万条(13338)、64bit13338,以实际为准;c、VTS测试增加约2…

  • 二级导航菜单[通俗易懂]

    二级导航菜单[通俗易懂]本文用html5+css实现了二级导航菜单,二级导航菜单在网站建设中使用的越来越广泛。效果图如下:当鼠标悬停在一级菜单上时,出现二级下拉菜单二级下拉菜单可以被选中,当鼠标悬停上去时,变色。html代码<!DOCTYPEhtml><html><head><metacharset="UTF-…

  • 关于大数据平台,这有一套完整的方法论,你确定不收藏?[通俗易懂]

    关于大数据平台,这有一套完整的方法论,你确定不收藏?[通俗易懂]大数据时代这个词被提出已有10年了吧,越来越多的企业已经完成了大数据平台的搭建。随着移动互联网和物联网的爆发,大数据价值在越来越多的场景中被挖掘,随着大家都在使用欧冠大数据,大数据平台的搭建门槛也越来越低。借助开源的力量,任何有基础研发能力的组织完全可以搭建自己的大数据平台。但是对于没有了解过大数据平台、数据仓库、数据挖掘概念的同学可能还是无法顺利完成搭建,因为你会发现太多的东西,和架构,你不知道如何去选择。今天给大家分享下大数据平台是怎么玩的。架构总览通常大数据平台的架构如上,从.

  • Matlab之正态拟合直方图绘制函数histfit

    Matlab之正态拟合直方图绘制函数histfit目录一、功能二、语法1.histfit(data)2.histfit(data,nbins)3.histfit(data,nbins,dist)4.histfit(ax,___)5.h=histfit(___)三、示例1.具有正态拟合分布的直方图2.给定bin数的直方图3.具有指定分布拟合的直方图4.具有核平滑函数拟合的直方图一、功能绘制正态拟合直方图二、语法1.histfit(data)绘制data中的值的直方图…

    2022年10月18日
  • 搭建自己的git服务器_自建服务器

    搭建自己的git服务器_自建服务器在服务器端:新建一个空git仓库sudogitinit–baresample.gitsudochown-Rgit:gitsample.git在本地:添加remotegitremoteaddmyservergit@server_ip:/path-to-git-repo把本地内容push上去gitadd.gitcommit-m”xxx”…

  • Ags 9.3 文档逐步上线

    Ags 9.3 文档逐步上线

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号