c++ vector 先进先出_C++容器和STL, since 2020-12-08

(2020.12.08 Tues)STL容器允许重复利用已有的实现构造自己特定类型下的数据结构,通过设置一些模板类,这些模板的参数允许用户指定容器中元素的数据类型,从而提高编程效率。(容器部分的内容可以对比python中的list, tuple, dict, set等数据结构。)容器主要由头文件, , , , , 和组成。数据结构描述实现头文件向量(vector)连续存储的元素列表(list)由节...
摘要由CSDN通过智能技术生成

(2020.12.08 Tues)

STL容器允许重复利用已有的实现构造自己特定类型下的数据结构,通过设置一些模板类,这些模板的参数允许用户指定容器中元素的数据类型,从而提高编程效率。

(容器部分的内容可以对比python中的list, tuple, dict, set等数据结构。)

容器主要由头文件, , , , , 和组成。

数据结构

描述

实现头文件

向量(vector)

连续存储的元素

列表(list)

由节点组成的双向链表,每个结点包含着一个元素

双队列(deque)

连续存储的指向不同元素的指针所组成的数组

集合(set)

由节点组成的红黑树,每个结点都包含着一个元素,节点之间以某种作用于元素对的谓词排列,没有两个不同的元素能够拥有相同的次序

多重集合(multiset)

允许存在两个次序相等的元素的集合

栈(stack)

后进先出的值的排列

队列(queue)

先进先出的值的排列

优先队列(priority queue)

元素的次序是由作用于所存储的值对上的某种谓词决定的一种队列

映射(map)

由{键,值}对组成的集合,以某种作用于键对上的谓词排列

多重映射(multimap)

允许键对有相等的次序的映射

(2020.12.09 Wed)

STL定义的通用容器分为顺序容器(sequence container),关联容器(associative container)和容器适配器。

顺序容器

顺序容器是一种各元素间有顺序关系的线性表,是线性结构的可序群集,其中的每一个元素有固定的位置,除非用删除或插入的操作改变变量的位置。顺序容器具有插入速度快但查找操作相对较慢的特征。C++ STL(标准模板库)提供3中顺序容器:vector、list和deque。vector和deque类时以数组为基础,list类是以双向链表为基础。

顺序容器中各种类型的比较

vector是动态顺序容器,有连续内存地址的数据结构。相比于数组,vector会消耗更多的内存以有效地动态增长。而相比于其他顺序容器(deques, list),vector能更快的索引元素(如同数组一样),而且能相对高效的在尾部插入和删除元素。在其他位置删除和插入元素,效率没有这些容器高。

list是STL实现的双向链表,相比vector的连续线性空间,list复杂太多,它允许快速的插入和删除,但是随机访问却比较慢。它的数据有若干个节点构成,每个节点包括一个信息块、一个前驱指针和一个后驱指针&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值