C++理论梳理8——容器(待补充)

容器是什么

定义:在C++ 中容器被定义为:一些特定类型对象的集合。解释一下:容器是C++官方针对一些典型数据结构制定的一种类模板。(在数据存储上,这种对象类型,包含有其它对象或指向其它对像的指针,这种对象类型就叫做容器。存疑)。一般来讲,容器都定义在一个.h中,文件名与类型名相同。

作用:容器封装了一些对数据操作上的细节,可以提高代码泛化能力和编程便捷度。可看作是实现特定泛型编程问题的一种方案。

在C++ 中,standard template library(STL)主要有两部分构成:容器和操作这些容器的泛型算法。容器和标准模板库(STL )的关系,为下图:
在这里插入图片描述
容器,算法和泛型指针的关系,如下图:
在这里插入图片描述

容器的分类

STL 对定义的通用容器分三类:顺序性容器、关联式容器和容器适配器。
在这里插入图片描述
具体特性,如下表:

STL容器类内部结构随机/顺序存取搜索速度插入/移除
顺序式容器
vector动态数组随机存取队尾
list双向链表双向顺序存取很慢任意位置
deque双端队列随机存取头/尾
forword_list单向链表单向顺序存取很慢任意位置
array数组随机存取固定大小
无法插入/删除
string
(可看作字符容器)
类似vector随机存取
关联式容器
set二叉树
multiset二叉树
map二叉树
multimap二叉树
容器适配器
stack
queue
priority_queue

数据存储结构如下:
在这里插入图片描述

顺序容器

  • 选择哪种顺序容器?
    除非有很好的选择别的顺序容器的理由,否则使用vector;
    如果程序有很多小的元素,且空间的额外开销很重要,则不要使用list和forward_list(含过多指针);
    根据插入或删除元素的位置选择;
    如果不确定使用哪种容器,则只是用vector和list。
  • vector
  • list
  • deque

关联容器

容器适配器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值