没有合适的资源?快使用搜索试试~ 我知道了~
【内容补充】C++ STL库函数总结(纯手打,主要偏向ACM竞赛方面使用)
5星 · 超过95%的资源 需积分: 32 67 下载量 121 浏览量
2017-09-14
22:14:06
上传
评论 2
收藏 42KB DOCX 举报
温馨提示
试读
17页
C++ STL库函数总结(纯手打,主要偏向ACM竞赛方面使用) 本资源为http://download.csdn.net/download/zjw1111/9840082的更新版本,对内容进行了补充。
资源推荐
资源详情
资源评论
C++ STL 库函数
一.集合(set) 头文件<set>
定义:
由节点组成的红黑树,每个节点都包含着一个元素,节点之间以某种作用于元素对的谓词
排列,没有两个不同的元素能够拥有相同的次序
注:
集合()默认按小于号排序(升序)
使用降序排列
需要包含 头文件
所以涉及到重载运算符 的问题
将字符串存入集合,要使用 类,不能使用 字符串
定义集合时也可以采用如下方式:
set 的各成员函数用法(Usage):
迭代器成员函数(Iterators)
返回指向第一个元素的迭代器
输出时需要 !"#$%
$返回指向最后一个元素后面的迭代器
如果想输出最后一个元素要使用 !"#$$%
&$'返回一个指向被查找到元素的迭代器 ((等价于 !'
元素检索:若找到,返回该键值迭代器的位置,否则,返回最后一个元素后面一个位置。
))* *
#&$ 查找键值为 的元素
+,#$ !"$% 找到
% !-未找到- 未找到
))* *迭代器变量
+ *))* *#,#$ !"
))*.*/* *反向迭代器变量
+ **))*.*/* *#r,#r$
!"
或写作: ))*.*/* **
+ **#**,#*$* !"*
r返回指向集合中最后一个元素的反向迭代器
r$返回指向集合中第一个元素的反向迭代器
!00*/ !$'返回大于某个值元素的迭代器
有超范围的可能,即指向 #$
% 1*/ !$'返回指向大于(或等于)某值的第一个元素的迭代器
有超范围的可能,即指向 #$
10交换两个集合变量 用法:#10
元素操作成员函数
*在集合中插入元素
%*清除所有元素
!'返回某个值元素的个数 ——等价于 &$'
集合中一个元素最多出现一次所以它的返回值只有 和
203如果集合为空,返回 *!
*'删除集合中的元素
4集合中元素的数目
没有什么用的成员函数
5!%/*返回集合中与给定值相等的上下限的两个迭代
/%% *返回集合的分配器
63/ 20返回一个用于元素间值比较的函数
.%!/ 20返回一个用于比较元素间的值的函数
27/4返回集合能容纳的元素的最大限值
求集合的并、交、差、对称差
本代码中使用的 !" 左右是输出集合,等价于用迭代器 循环输出
!
!
!
!#$
%
#$#&&$#&$#'$
((遍历 ,可以发现元素是有序的
")*#$
+,!+
#"-)#$"$"++
#)./$#$
+,!+
#")*#$"-)#$"$"++
//获得两个 set 的并
"#*#$#$
*#$#$
"#*#$$
$ //注意第五个参数的形式
#*#$#$!"#++$$
//获得两个 set 的交,注意进行集合操作之前要调用 clear()函数清空一下集合
#$
"#*#$#$
*#$#$
"#*#$$
$
#*#$#$!"#++$$
//获得两个 set 的差 A-B
#$
"0#*#$#$
*#$#$
"#*#$$
$
#*#$#$!"#++$$
//获得两个 set 的对称差,也就是假设两个集合分别为 A 和 B 那么对称差为 AUB-A∩B
#$
" !!"0#*#$#$
*#$#$
"#*#$$$
1
#*#$#$!"#++$$
&
2
二.映射(map) 头文件<map>
定义:
它是由%键,值2对组成的集合,
提供一对一(第一个称为关键字,第二个称为该关键字的值)的数据处理能力,
由于这个特性,在我们处理一对一数据的时候,它可以在编程上提供快速通道。
这里说下 ! 内部数据的组织,! 内部自建一颗红黑树#一种非严格意义上的平衡二叉
树$,这颗树具有对数据自动排序的功能,
所以在 ! 内部所有的数据都是有序的,后边我们会见识到有序的好处。
注:
! 的内部是按键%3 2升序排列的。
每个关键字%3 2只能在 ! 中出现一次。
! 中的元素其实就是一个 。
1 ! 的键不能是指针,比如 ,之类的会出错。常用的就用 了, 也行。
/ 键本身是不能被修改的,除非删除。
. 在 循环迭代期间是不能删除元素的(只能用 4 循环删除)。
208*))* *#
18%,#$
+ $
%#*
5 可以直接进行赋值和比较: )))-)等等
+209:209:'
用法(Usage):
定义
;;;;;20*;20;
;;;;;30$+;20*<=;用 30$+ 定义
;;;;;;;;<=20;
插入数据
;;;;;20--;
;;;;;20#*20*)).%!/30--;
;;;;;20#*0**--;
;;;;;20#*26/0**-$-;
剩余16页未读,继续阅读
资源评论
- qq_394243692017-12-21感觉可以。。。
zjw1111
- 粉丝: 1
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Win64OpenSSL-3-3-0.exe
- 课高分程设计-基于C++实现的民航飞行与地图简易管理系统-南京航空航天大学
- 航天器遥测数据故障检测系统python源码+文档说明+数据库(课程设计)
- 北京航空航天大学操作系统课设+ppt+实验报告
- 基于Vue+Echarts实现风力发电机中传感器的数据展示监控可视化系统+源代码+文档说明(高分课程设计)
- 基于单片机的风力发电机转速控制源码
- 基于C++实现的风力发电气动平衡监测系统+源代码+测量数据(高分课程设计)
- 毕业设计- 基于STM32F103C8T6 单片机,物联网技术的太阳能发电装置+源代码+文档说明+架构图+界面截图
- 基于 LSTM(长短期记忆)(即改进的循环神经网络)预测风力发电厂中风力涡轮机产生的功率+源代码+文档说明
- 基于stm32f103+空心杯电机+oled按键+运动算法
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功