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

  • 更新时间:2022-09-12 09:42:45
  • 编辑:满文曜
本站精选了一篇c++相关的编程文章,网友傅彩红根据主题投稿了本篇教程内容,涉及到vector、map、list、queue、vector map list相关内容,已被284网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

参考资料

正文内容

vector map list

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容器中

c++相关教程

  • JNI实现最简单的JAVA调用C/C++实例代码讲解

    这篇文章主要介绍了JNI实现最简单的JAVA调用C/C++代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    发布时间:2019-09-02

  • C++常量详解一(常量指针与常量引用的初始化)

    为网友们分享了关于C++的教程,这篇文章主要介绍了C++常量详解一(常量指针与常量引用的初始化),需要的朋友可以参考下

    发布时间:2022-07-25

  • c++读取数据文件到数组的实例

    今天小编就为大家分享一篇c++读取数据文件到数组的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    发布时间:2021-05-11

  • C/C++指针和取地址的方法

    C/C++指针和取地址的方法,需要的朋友可以参考一下

    发布时间:2022-04-01

  • C++实现归并排序的实例

    这篇文章主要为大家详细介绍了C++实现归并排序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    发布时间:2021-10-08

  • C++实现数字转换为十六进制字符串的方法

    这篇文章主要介绍了C++实现数字转换为十六进制字符串的方法,涉及C++操作数字与字符串转换的相关技巧,需要的朋友可以参考下

    发布时间:2022-04-16

  • C++子类父类成员函数的覆盖和隐藏实例详解

    C++子类父类成员函数的覆盖和隐藏实例详解

    给大家整理一篇关于C++的教程,这篇文章主要介绍了C++子类父类成员函数的覆盖和隐藏实例详解的相关资料,需要的朋友可以参考下

    发布时间:2022-09-12

  • 用C/C++代码检测ip能否ping通(配合awk和system可以做到批量检测)

    今天小编就为大家分享一篇关于用C/C++代码检测ip能否ping通(配合awk和system可以做到批量检测),小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

    发布时间:2022-04-21

  • 老生常谈C++中实参形参的传递问题

    下面小编就为大家带来一篇老生常谈C++中实参形参的传递问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    发布时间:2022-04-15

  • C++实现教师管理系统

    这篇文章主要为大家详细介绍了C++实现教师管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    发布时间:2022-04-16

用户留言