• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C语言 > vector,map,list,queue的区别详细解析

vector,map,list,queue的区别详细解析

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了vector list map,c vector list map,vector map,c vector map,jquery.vector map.js等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

1。vector  (连续的空间存储,可以使用[]操作符)快速的访问随机的元素,快速的在末尾插入元素,但是在序列中间岁间的插入,删除元素要慢,而且如果一开始分配的空间不够的话,有一个重新分配更大空间,然后拷贝的性能开销.

2。deque (小片的连续,小片间用链表相连,实际上内部有一个map的指针,因为知道类型,所以还是可以使用[],只是速度没有vector快)快速的访问随机的元素,快速的在开始和末尾插入元素,随机的插入,删除元素要慢,空间的重新分配要比vector快,重新分配空间后,原有的元素不需要拷贝。对deque的排序操作,可将deque先复制到vector,排序后在复制回deque。

3。list   (每个元素间用链表相连)访问随机元素不如vector快,随机的插入元素比vector快,对每个元素分配空间,所以不存在空间不够,重新分配的情况

4。set 内部元素唯一,用一棵平衡树结构来存储,因此遍历的时候就排序了,查找也比较快的哦。

5。map 一对一的映射的结合,key不能重复。

6。stack 适配器,必须结合其他的容器使用,stl中默认的内部容器是deque。先进后出,只有一个出口,不允许遍历。

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

下面是选择顺序容器类型的一些准则 
1.如果我们需要随机访问一个容器则vector要比list好得多 。

2.如果我们已知要存储元素的个数则vector 又是一个比list好的选择。 

3.如果我们需要的不只是在容器两端插入和删除元素则list显然要比vector好 

4.除非我们需要在容器首部插入和删除元素否则vector要比deque好。

5.如果只在容易的首部和尾部插入数据元素,则选择deque.

6.如果只需要在读取输入时在容器的中间位置插入元素,然后需要随机访问元素,则可考虑输入时将元素读入到一个List容器,接着对此容器重新拍学,使其适合顺序访问,然后将排序后的list容器复制到一个vector容器中

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • vector list map 遍历删除制定元素 防止迭代器失效的实例
  • vector, list, map在遍历时删除符合条件的元素实现方法
  • vector,map,list,queue的区别详细解析

相关文章

  • 2017-05-28详解C++中的一维数组和二维数组
  • 2017-05-28C++11新特性之auto的使用
  • 2017-05-28c语言实现系统时间校正工具代码分享
  • 2017-05-28详细解析命令行的getopt_long()函数
  • 2017-05-28C语言实现最长递增子序列问题的解决方法
  • 2017-05-28C++实现判断字符串是否回文实例解析
  • 2017-05-28C++中关于委派(Delegates)的实现示例
  • 2017-05-28C++设计模式编程之Flyweight享元模式结构详解
  • 2017-05-28Qt之ui在程序中的使用-多继承法介绍
  • 2017-05-28C++中I/O模型之select模型实例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C++ 基类指针和子类指针相互赋值的实现方法
    • 深入二叉树两个结点的最低共同父结点的详解
    • C++设计模式之享元模式
    • 浅析C++中的虚函数
    • C++实现日期类(Date类)的方法
    • 华为面试题数字大小写转换
    • 利用C语言实现2048小游戏的方法
    • .h和.cpp文件的区别(zt)详细介绍
    • C++读写Excel的实现方法详解
    • c++ 快速排序算法【过程图解】

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有