没有合适的资源?快使用搜索试试~ 我知道了~
首页C++容器类的简单介绍.doc
C++容器类的简单介绍.doc
需积分: 9 8 下载量 91 浏览量
更新于2023-07-03
收藏 190KB DOC 举报
1、STL标准容器类简介 标准容器类 说明 顺序性容器 vector 相当与数组,从后面快速的插入与删除,直接访问任何元素 deque 双队列,从前面或后面快速的插入与删除,直接访问任何元素 list 双链表,从任何地方快速插入与删除 关联容器 set 快速查找,不允许重复值 multiset 快速查找,允许重复值 map 一对一映射,基于关键字快速查找,不允许重复值 multimap 一对多映射,基于关键字快速查找,允许重复值 容器适配器 stack 后进先出 queue 先进先出 priority_queue 最高优先级元素总是第一个出列
资源详情
资源推荐
C++容器类的简单介绍
一、容器简介
、 标准容器类简介
标准容器类 说明
顺序性容器
相当与数组,从后面快速的插入与删除,直接访问任
何元素
双队列,从前面或后面快速的插入与删除,直接访问
任何元素
双链表,从任何地方快速插入与删除
关联容器
快速查找,不允许重复值
快速查找,允许重复值
一对一映射,基于关键字快速查找,不允许重复值
一对多映射,基于关键字快速查找,允许重复值
容器适配器
后进先出
先进先出
最高优先级元素总是第一个出列
、所有标准库共有函数
默认构造函数 提供容器默认初始化的构造函数。
复制构造函数 将容器初始化为现有同类容器副本的构造函数
析构函数 不再需要容器时进行内存整理的析构函数
容器中没有元素时返回 否则返回
返回容器中最大元素个数
返回容器中当前元素个数
将一个容器赋给另一个容器
如果第一个容器小于第二个容器,返回 ,否则返回 ,
如果第一个容器小于或等于第二个容器,返回 ,否则返回
如果第一个容器大于第二个容器,返回 ,否则返回
如果第一个容器大于或等于第二个容器,返回 ,否则返回
如果第一个容器等于第二个容器,返回 ,否则返回
!如果第一个容器不等于第二个容器,返回 ,否则返回
"交换两个容器的元素
其中 !均不
适用于
#、顺序容器和关联容器共有函数
$%&该函数两个版本返回 或 &,引用容器第一个元素
&该函数两个版本返回 或 &引用容器最后一个元素
后面一位
$%&该函数两个版本返回 或 &引用
容器最后一个元素
&该函数两个版本返回 或 &,引用
1
容器第一个元素前面一位
从容器中清除一个或几个元素
清除容器中所有元素
下表显示了顺序容器和关联容器中常用的 ,这些 常用于变量、参数和函
数返回值的一般性声明。
容器中存放元素的类型
&容器中存放元素类型的引用
&&容器中存放元素类型的常量引用,这种引用只能读取容器中的元素和进
行 & 操作
&容器中存放元素类型的指针
指向容器中存放元素类型的迭代器
&指向容器中存放元素类型的常量迭代器,只能读取容器中的元素
指向容器中存放元素类型的逆向迭代器,这种迭代器在容器中逆向迭代
&指向容器中存放元素类型的逆向迭代器,只能读取容器中的元素
'&引用相同容器的两个迭代器相减结果的类型( 和关联容器没有定
义 ()
用于计算容器中项目数和检索顺序容器的类型(不能对 检索)
二、容器的比较
(连续的空间存储可以使用)*操作符)快速的访问随机的元素,快速的在末尾插
入元素,但是在序列中间岁间的插入,删除元素要慢,而且如果一开始分配的空间不够
的话,有一个重新分配更大空间,然后拷贝的性能开销
(小片的连续,小片间用链表相连,实际上就是一个每小片指针的数组,因为知
道类型,所以还是可以使用)*,只是速度没有 快)快速的访问随机的元素,快速的
在开始和末尾插入元素,随机的插入,删除元素要慢,空间的重新分配要比 快
(每个元素间用链表相连)访问随机元素不如 快,随机的插入元素比
快,对每个元素分配空间,所以不存在空间不够,重新分配的情况
内部元素唯一,用一棵平衡树结构来存储,因此遍历的时候就排序了,查找也比较快
的哦。
一对一的映射的结合, 不能重复。
适配器,必须结合其他的容器使用
是受限制的
$ 与 $ 前面的可以动态改变长度。
插入的元素就有优先级顺序, 出来的就是优先级最高的了
专门进行数值计算的,增加特殊的数学函数。
三、+ 的基本用法
(一)原型与构造函数
+ 的原型可定义为
其构造函数为
,-..空的
2
,-..指定一种
,&-..用默认 ,-初始化 & 个元素
,&-..用 + 初始化 & 个元素
,&-..用 初始化 & 个元素,用 做分配器
,/-..从己有的 / 到 复制生成
,/-..从己有的 / 到 复制生成,用 做分配器
(二)操作
0开辟 1 个空间
$20,1-3
0当前(重新分配内存前)得到最大容量
,-3
#0重新分配内存为 1
,1-
如果变小,则删除多余。如果变大,则用 ,-添充
40清空
,-3
注 意 , ,- 和 ,- 都 不 一 定 使 得 变 小 , 若 欲 释 放 内 存 , 请 使 用
$20",5 ,--
60存取首尾元素
&,- 与 $,- 操 作 取 后 一 个 和 最 前 一 个元 素 , 注 意 其 返 回 是 引 用 其 而 是 左 值
,-因此可以赋值0做类似于 $20&,-#3的操作但要保证 & 空间有效,
否则形为无法预测。
70取值
)*与 可以做此操作, 会检查,如果越界有会 &% 的异常被 8"
908$$
要保证不为空
:0使用 %&
%& 可以改变大小和初值,大小是随意的,不受开始时大小的限制,如果设置为 ;则
清空。
%&,6;-把 改为 6 个大小,并用 ; 添充
%&,<#<6-3从数组第 4 到 6 个填充,注意左闭右开,即可取到 )#*与
)4*
=0使用 &
&,-在 前插入一个元素
&,/-在 前插入一个序列)/-左闭右开
;0使用
,-删除在 处的元素,返回值为下一元素。如果 &+0,&+0&,--3并
不会报错,如果删除一个序列)/-,使用 ,/-
0>+ 是 $ 的特化版,具体的用途有待查证
0?,-把某一元素,求反。
#0"0@$20",@$2)*@$2)2*-3
若要在容器中装一个对象并且能并检索,需要重载 如下:
A&
A&
3
A&$08
A&08
..A&%08
&%&3
@$2
B
$C
@$2,&&&-
B
8( 3
8( 3
8( 3
D
$,&@$2E$2-
B
,$20EE$20EE$20-
&3
&3
D
&%F,-
B
&8( 3
D
C
&3
&3
&3
D
&&,&%8G%)*-
B
@$2 @$23
@$2$2,#4-3
@$2$2,467-3
@$208$,$2-3
@$208$,$2-3
@$2 CC/&,@$20$%&,-@$20&,-@$2,#4--3
,!@$20&,--
,G-0%F,-&3
&;3
D
四、 的基本用法
与 的用法基本相同,其中需要强调一点的是 ,-函数,是指把指定段的另
一个 插入到指定位置的前面。
4
,E-
,E/-
,E/-
(一)原型与构造函数
@$23
构造函数
,-..空
,-..指定 的空表
,&-..& 个元素,所有元素都是 ,-出来的
,&-..& 个元素,所有元素都是 ,-出来的
,&-..同上,并指定 为
,/-..复制构造
,/-..指定 构造
(二)操作
1.resize & clear
使用 ,&-改变大小,使用 ,&-如果需要用 ,-来填满空闲值。
0&,-E$,-
如果 @$2 非常量对象返回是一个左值函数
#0插入操作
&,-
&,/-
&,&-..插入 & 个
40移除
,-3..0,&%-
按值删
&)*B#46779:D
& @$23
@$20&,@$20$%&,-<9-3
@$20,7-3..
按函数条件删
A&
A&
&%&3
..&&&C
$&%%,&&E-B&,;-3D
..&C
B
$C
$,-,&&E-B&,H-3D
D3
&&,-
B
&&)*B6#799;#=4D3
5
剩余21页未读,继续阅读
y0m0d0
- 粉丝: 0
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功