C++基础知识 - 容器概述

容器概述

  • 在实际的开发过程中,数据结构本身的重要性完全不逊于算法的重要性,当程序中存在着对时间要求很高的部分时,数据结构的选择就显得更加重要。

试想: 一条死胡同里面停车,这样的效率会很高吗?
在这里插入图片描述

  • 经典的数据结构数量有限,但是在项目实战中,我们常常重复着一些为了存放不同数据类型而实现顺序表、链表等结构而重复编写的代码,这些代码都十分相似,只是为了适应不同数据类型的变化而在细节上有所出入。

  • STL容器就为我们提供了这样的方便,它允许我们重复利用已有的实现构造自己的特定类型下的数据结构,通过设置一些模板,STL容器对最常用的数据结构提供了支持,这些模板的参数允许我们指定容器中元素的数据类型,避免重复编码。

  • 容器部分主要有由< vector>,< list>,< deque>,< set>,< map>,< stack> 和< queue>组成。

下面是常用的一些容器,可以通过下表总结一下它们和相应头文件的对应关系。

数据结构描述实现头文件
向量(vector)连续存储的元素< vector >
列表(list)由节点组成的双向链表,每个结点包含着一个元素< list >
双向队列(deque)连续存储的指向不同元素的指针所组成的数组< deque >
集合(set)由节点组成的红黑树,每个节点都包含着一个元素,节点之间以某种作用于元素对的谓词排列,没有两个不同的元素能够拥有相同的次序< set >
多重集合(multiset)允许存在两个次序相等的元素的集合< set >
栈(stack)后进先出的元素的排列< stack >
队列(queue)先进先出的元素的排列< queue >
优先队列(priority_queue)元素的次序是由作用于所存储的值对上的某种优先级决定的的一种队列< queue >
映射(map)由{键,值}对组成的集合,以某种作用于键对上的谓词排列< map >
多重映射(multimap)允许键对有相等的次序的映射< map >
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值