信息学奥赛NOIP标准模板库入门ppt课件
合集下载
信息学奥赛NOIP标准模板库入门PPT课件
vector应用——链表操作
【输入样例】 53 12345 116 21 22 【输出样例】 6345
Algorithm库函数在Vector的应用
Vector元素的遍历
结合实例,我们可以进一步理解iterator的使用方式。 下面的循环中i++也可以改写为i+=1或i=i+1,可以理解为将i指 向下一个位置。
Vector应用——存图
N个点,M条边,点数不超过100000,边数不超过1000000,再求 图上的一些东西。
如何存这幅图? 邻接矩阵,空间复杂度O(n2),遍历时间复杂度O(n2),BOOM!
Vector的定义与赋值
如图,Vector既然是一类数组,那它就能够当做数组定义、 使用、赋值。
Vector中可以定义的类型不限,既可以是int、char这样的 类型,也可以是结构体,甚至是Vector。
Vector的Size与Push_back操作
Push_back(x)是Vector的成员函数,它能够在Vector的末 尾加入一个元素x。
Size()也是Vector的成员函数,其返回值是Vector中的元素 个数。注意,访问不在Vector中的位置是未定义的行为。
Vector的Begin、End与iterator
在每种STL容器中都定义了自己的迭代器类型。 迭代器(iterator)是一种检查容器内元素并遍历元素的数据类 型。 迭代器相当于一种指针,是容器中一个元素的地址,(*迭代 器)才会指向具体的元素。 迭代器的++、--运算被重载过,详见下页实例。 Begin(), End()是Vector的成员函数,返回值分别是Vector 中首个元素的迭代器和Vector中末尾元素向后一位的迭代器。
信息学奥赛简介NOIP及C基础知识第一讲PPT课件
NOIP 联赛
➢初赛: • 10月中旬(周六/周日下午2:30-4:30) •笔试(100分) • 资格赛,地市独立组织(全国统一命题,统一时间)
➢复赛: • 11月份中旬(第二周,周六周日上午3.5个小时) • 上机编程 •两试:每试3个题目,300分,共600分。 • 提交源程序,黑盒子测试法
return 0;
}
提示:所有的代码都要在英状态输入。
24
例1:程序解释
#include<cstdio>//预处理命令。
译出错
//使用printf/scanf须调用cstdio库,否则编
int main() {
//主函数
int a,b;
//定义了a,b两个整型变量
scanf(“%d%d”,&a,&b); //读取键盘输入,并存到变量a、b
题所有可能的解,并根据问题的条件对各解进行逐个 检验,从中挑选出符合条件的解,舍弃不符合条件的 解。
14
多动手、模仿是捷径 勤思考、实践是王道
15
二 . 体验算法与程序设计(C++语言)
16
引例1:最简单的程序:输出:Hello world!
【参考程序】
#include<cstdio> int main(){
printf("Hello word!"); return 0; }
提示:所有的代码都要在英状态 输入。
17
(1)双击
如何编写调试代码?
,打开c++编译器;
(2)文件/新建源代码;
(3)F11:保存并运行程序。
友情提示:可以在桌面上建立一个以自己的名字命名的文件 夹,用来保存程序 。
信息学奥赛简介NOIP及C基础知识第一讲PPT课件
【问题分析】: 周长等于边长的4倍。 【算法设计】:正方形的边长用a表示,周长用c表示。
21
【参考程序】
#include<cstdio> int main(){
int a,c; scanf("%d",&a); c=4*a; printf("%d",c); return 0; }
22
三、基础知识
23
例2.输入三角形的三边a,b,c。求三角形的面积s (a,b,c是实数<100,满足三角形条件,结果保留3位小数)
样例输入1:3 4 5 样例输出1:6.000
样例输入2:1 1 1 样例输出2:0.433
分析: 求三角形面积的海伦公式:
sp (p a )p ( b )p ( c )
其中
p=(a+b+c)/2
12(8)。 3)十六进制形式。以0x打头,如0x12A,表示十六进制整数12A,即12A(16)。
2、实型常量:如3.1、-6.1E+2(科学记数法)。 3、字符常量:是用单引号括起来的字符,如 'k' 、'5' 、'%'。 注意:'a'与"a"表示的含义是不同的,'a'表示一个字符常量,"a"表示一个字符串。
printf(“%d”,a+b);
//输出a+b的值
return 0; //结束整个程序,返回0,每个主程序都必有。
} 25
说明
(1)以“//”开头为注释行,“//”后的内容用以对语句进 行说明,不运行,无需输入。
(2)上面的程序中共有4条语句,每条语句必须以分号“;” 作为结束。
21
【参考程序】
#include<cstdio> int main(){
int a,c; scanf("%d",&a); c=4*a; printf("%d",c); return 0; }
22
三、基础知识
23
例2.输入三角形的三边a,b,c。求三角形的面积s (a,b,c是实数<100,满足三角形条件,结果保留3位小数)
样例输入1:3 4 5 样例输出1:6.000
样例输入2:1 1 1 样例输出2:0.433
分析: 求三角形面积的海伦公式:
sp (p a )p ( b )p ( c )
其中
p=(a+b+c)/2
12(8)。 3)十六进制形式。以0x打头,如0x12A,表示十六进制整数12A,即12A(16)。
2、实型常量:如3.1、-6.1E+2(科学记数法)。 3、字符常量:是用单引号括起来的字符,如 'k' 、'5' 、'%'。 注意:'a'与"a"表示的含义是不同的,'a'表示一个字符常量,"a"表示一个字符串。
printf(“%d”,a+b);
//输出a+b的值
return 0; //结束整个程序,返回0,每个主程序都必有。
} 25
说明
(1)以“//”开头为注释行,“//”后的内容用以对语句进 行说明,不运行,无需输入。
(2)上面的程序中共有4条语句,每条语句必须以分号“;” 作为结束。
信息学奥林匹克分区联赛的基础知识 PPT
2、下面哪个部件关于个人桌面电脑的正常运行不是必需的 ( )。 A、CPU B、 图形卡(显卡) C、 光驱 D、 主板 E、 内 存
3、下列哪个(些)不是个人计算机的硬件组成部分( )。 A、主板 B、虚拟内存 C、电源 D、硬盘 E、 总线
4、一个文本屏幕有25列及80行,屏幕的左上角以(1,1)表示, 而右下角则以(80,25)表示,屏幕上每一个字符占用两字节 (byte),整个屏幕则以线性方式存储在电脑的存储器内,屏 幕左上角开始,位移为0,然后逐列逐列存储。求位于屏幕 (X,Y)的第一个字节的位移是( ) A、(Y*80+X)*2-1 B、((Y-1)*80+X-1)*2 C、(Y*80+X-1)*2 D、((Y-1)*80+X)*2-1
信息学奥林匹克 分区联赛的基础知识
初赛试题结构
第一部分 基础知识 第二部分 问题求解 第三部分 阅读程序 第四部分 完善程序
第一部分 基础知识
一、计算机的产生与发展 二、计算机的系统组成 三、计算机的特点及应用 四、计算机中有关数及编码知识 五、计算机网络基础知识 六、计算机信息安全知识
一、 计算机的产生与发展
A、尘土 B、噪声 C、温度 D、湿度
4、在计算机中,ASCII码是几位二进制代码( )
A、7
B、8
C、12 D、16
5、下面四个不同进制的数,最小的一个数是( )
A、(11011001)2
B、(37)8
C、(75)10
D、(A7)16
资料
1 简述冯•诺依曼型计算机的组成与工作原理。 2 计算机硬件系统由哪五个基本部分组成?它
A)CPU的主时钟频率
B)CPU产品的系列号
C)每秒执行300百万条指令
3、下列哪个(些)不是个人计算机的硬件组成部分( )。 A、主板 B、虚拟内存 C、电源 D、硬盘 E、 总线
4、一个文本屏幕有25列及80行,屏幕的左上角以(1,1)表示, 而右下角则以(80,25)表示,屏幕上每一个字符占用两字节 (byte),整个屏幕则以线性方式存储在电脑的存储器内,屏 幕左上角开始,位移为0,然后逐列逐列存储。求位于屏幕 (X,Y)的第一个字节的位移是( ) A、(Y*80+X)*2-1 B、((Y-1)*80+X-1)*2 C、(Y*80+X-1)*2 D、((Y-1)*80+X)*2-1
信息学奥林匹克 分区联赛的基础知识
初赛试题结构
第一部分 基础知识 第二部分 问题求解 第三部分 阅读程序 第四部分 完善程序
第一部分 基础知识
一、计算机的产生与发展 二、计算机的系统组成 三、计算机的特点及应用 四、计算机中有关数及编码知识 五、计算机网络基础知识 六、计算机信息安全知识
一、 计算机的产生与发展
A、尘土 B、噪声 C、温度 D、湿度
4、在计算机中,ASCII码是几位二进制代码( )
A、7
B、8
C、12 D、16
5、下面四个不同进制的数,最小的一个数是( )
A、(11011001)2
B、(37)8
C、(75)10
D、(A7)16
资料
1 简述冯•诺依曼型计算机的组成与工作原理。 2 计算机硬件系统由哪五个基本部分组成?它
A)CPU的主时钟频率
B)CPU产品的系列号
C)每秒执行300百万条指令
信息学奥林匹克竞赛基础知识-PPT课件
二十多年来逐步演变和发展的Internet网络,已为信息 高速公路勾画出一个雏形,并为整个信息基础设施打下 了一定的基础。在美国政府提出信息高速公路发展计划 之后,全球许多国家纷纷制订了本国的信息计划,以期 在新世纪来临之际,占领有利位置,谋求国家的长远利 益,一时间信息高速公路热席卷全球。
我国的“三金”工 程
数据库
现在比较流行的大中型关系型数据库有IBM DB2、Oracle、SQL Server、 SyBase、Informix等,常用的小型数据库有Access、Pradox、Foxpro等, 现在个人用户比较常用的主要是基于中小型数据库MS SQL Server和Access 的,所以在以下的篇幅中我们介绍这两种数据库系统的简单操作。
处理速度
(指令数/秒)
几千条
几百万条几千万条源自研制中的第五代计算机至目前为止,各种类型的计算机都属于冯· 诺依曼型计算机, 即采用存储程序方式进行工作。随着计算机应用领域的扩大, 冯· 诺依曼型的工作方式逐渐显露出其局限性,所以科学家提出了 制造非冯· 诺依曼式计算机。正在开发研制中的第五代智能计算机, 将具有自动识别自然语言、图形、图像的能力,具有理解和推理 的能力,具有知识获取、知识更新的能力,可望能够突破当前的 计算机的结构模式。 研制朝两个方向努力: 1、创建非冯· 诺依曼式语言 2、创建以人脑神经系统处理信息原理为基础的非冯· 诺依曼 的计算机模型, 如:生物计算机、光子计算机、量子计算机
存储器有内存(主存)和外存(辅存)之分。外存是存放程序和数据“仓库”, 可以长时间的保存大量信息。但程序必须调入到内存方可执行,待处理的数据也 只有进行内存后才能被程序加工。所以内存和外存之间的严格的分工。 存储器采取按地址存(写)、取(读)的工作方式。一个内存体内包括许多的存 储单元,每个单元可以存放适当单位的信息,全部存储单元按一定的顺序编号, 这种编号就称为存储器的地址。 存储器按其读写性可以分为:RAM(随机存储器)、ROM(只读存储器) 当电源关闭时RAM不能保留数据,如果需要保存数据,就必须把它们写入到 一个长期的存储器中(例如硬盘)。
信息学奥赛NOIP第4单元循环结构程序设计.ppt
其含义为:先执行一次循环体, 然后判断表达式是否成立,如果成 立,则返回继续执行循环体,直到 表达式不成立,才退出循环。一般 称之为“直到型循环”。
高等教育出版社
信息学奥赛课课通(C++)
例1、用 do-while 语句实现输出一行 10 个“@”。
//p4-2-1 #include<cstdio> using namespace std; int main(){
高等教育出版社
信息学奥赛课课通(C++)
【样例输入】 5 5000 6077 【样例输出】 4
//p4-2-3 #include<iostream> using namespace std; int main(){
double r,m,y; int k = 0; cin >> r >> m >> y; do{
高等教育出版社
信息学奥赛课课通(C++)
例3、统计正数
【问题描述】 输入若干整数,以 0 结尾,统计其中有多少个正整数。 【输入格式】 一行若干整数,最后一个为 0。 【输出格式】 一行一个整数,表示输入的数据中正整数的个数。 【样例输入】 3 6 -3 2 0 【样例输出】 3
高等教育出版社
信息学奥赛课课通(C++)
//p4-3-1a #include<cstdio> using namespace std; int main(){
for(int i = 1; i <= 10; i++) printf( “ @ ” );
printf( “\n ” ); return 0; }
高等教育出版社
信息学奥赛课课通(C++)
例1、用 do-while 语句实现输出一行 10 个“@”。
//p4-2-1 #include<cstdio> using namespace std; int main(){
高等教育出版社
信息学奥赛课课通(C++)
【样例输入】 5 5000 6077 【样例输出】 4
//p4-2-3 #include<iostream> using namespace std; int main(){
double r,m,y; int k = 0; cin >> r >> m >> y; do{
高等教育出版社
信息学奥赛课课通(C++)
例3、统计正数
【问题描述】 输入若干整数,以 0 结尾,统计其中有多少个正整数。 【输入格式】 一行若干整数,最后一个为 0。 【输出格式】 一行一个整数,表示输入的数据中正整数的个数。 【样例输入】 3 6 -3 2 0 【样例输出】 3
高等教育出版社
信息学奥赛课课通(C++)
//p4-3-1a #include<cstdio> using namespace std; int main(){
for(int i = 1; i <= 10; i++) printf( “ @ ” );
printf( “\n ” ); return 0; }
信息学奥赛讲稿12页PPT
第四章 评审中学一级教师专业技术资格的基本条件 第十一条 教育工作要求
(一)积极参与学生思想教育工作,从教以来,担任班主任或团委书记或 少先队大队辅导员3年以上,或担任课外活动小组指导教师等教育管理工作4年以 上,其中任现职期间担任教育管理工作2年以上。
第六章 评审中学高级教师专业技术资格基本条件 第十六条 教育工作要求 (一)积极开展学生思想教育及学校教育教学管理工作,任教以来担任班主任 工作5年以上,或担任辅导员、课外活动小组指导教师等其他教育管理工作7年以 上,其中任现职以来担任班主任2年以上,或担任辅导员、课外活动小组指导教师 等其他教育管理工作3年以上。
信息学奥赛的简单入门
信息学奥赛 的学习内容
讲
上
解
机
基实本际语操句作
信息学奥赛的简单入门
基础知识
过程与函数
顺序结构
信息学 奥赛
数组
条件语句
循环语句
信息学奥赛的简单入门 Free Pascal 2.0.4为例,介绍两次课的上机内容
会用程序
文件操作
程序练习
了解程序的使 用;介绍最常 用的快捷键。
能够熟练读写 文件,这是比 赛最重要的地 方。
信息学奥赛的简单介绍
报考条件: 自主选拔的对象主要为具有学科特长,以及全面发展且具有创新
潜质的优秀高中毕业生。在高中阶段具备以下八类条件之一的学生,可通 过学校推荐或自荐的方式,申请参加我校自主选拔:
A、竞赛获奖、特殊专长学生 1、获得全国中学生学科奥林匹克竞赛省级赛区数学、物理、化学、 生物、信息学单项二等奖及以上; 2、在省级及以上各类科技创新竞赛中获奖或获得发明专利(已受理但 未正式取得证书的专利除外); 3、在航空、航天、航海模型运动项目上具有特长,获得过省级比赛 冠军或全国比赛前三名; 4、具有外语或文学方面特长,在全国创新英语作文大赛、全国中小 学生创新作文大赛、《高考》杯(华东地区)创新读写大赛等省级、国家级 比赛中获得优胜或二等奖及以上或可以提供其他资料证明其特长;
(一)积极参与学生思想教育工作,从教以来,担任班主任或团委书记或 少先队大队辅导员3年以上,或担任课外活动小组指导教师等教育管理工作4年以 上,其中任现职期间担任教育管理工作2年以上。
第六章 评审中学高级教师专业技术资格基本条件 第十六条 教育工作要求 (一)积极开展学生思想教育及学校教育教学管理工作,任教以来担任班主任 工作5年以上,或担任辅导员、课外活动小组指导教师等其他教育管理工作7年以 上,其中任现职以来担任班主任2年以上,或担任辅导员、课外活动小组指导教师 等其他教育管理工作3年以上。
信息学奥赛的简单入门
信息学奥赛 的学习内容
讲
上
解
机
基实本际语操句作
信息学奥赛的简单入门
基础知识
过程与函数
顺序结构
信息学 奥赛
数组
条件语句
循环语句
信息学奥赛的简单入门 Free Pascal 2.0.4为例,介绍两次课的上机内容
会用程序
文件操作
程序练习
了解程序的使 用;介绍最常 用的快捷键。
能够熟练读写 文件,这是比 赛最重要的地 方。
信息学奥赛的简单介绍
报考条件: 自主选拔的对象主要为具有学科特长,以及全面发展且具有创新
潜质的优秀高中毕业生。在高中阶段具备以下八类条件之一的学生,可通 过学校推荐或自荐的方式,申请参加我校自主选拔:
A、竞赛获奖、特殊专长学生 1、获得全国中学生学科奥林匹克竞赛省级赛区数学、物理、化学、 生物、信息学单项二等奖及以上; 2、在省级及以上各类科技创新竞赛中获奖或获得发明专利(已受理但 未正式取得证书的专利除外); 3、在航空、航天、航海模型运动项目上具有特长,获得过省级比赛 冠军或全国比赛前三名; 4、具有外语或文学方面特长,在全国创新英语作文大赛、全国中小 学生创新作文大赛、《高考》杯(华东地区)创新读写大赛等省级、国家级 比赛中获得优胜或二等奖及以上或可以提供其他资料证明其特长;
NOIP初赛复习-普及组PPT课件
B. 高速缓存
C.内存
D.中央处理器
• 有人认为,在个人电脑送修前,将文件放入回收站中就是已经将其删除了。这种想法是( )。
A. 正确的,将文件放入回收站意味着彻底删除、无法恢复
C
B. 不正确的,只有将回收站清空后,才意味着彻底删除、无法恢复
C. 不正确的,即使将回收站清空,文件只是被标记为删除,仍可能通过恢复软件找回
存空间为( )。 D
A.128KB
B.1MB
C.1GB
D.4GB
• 蓝牙和 Wi-Fi 都是()设备。 C
A.无线广域网 B.无线城域网 C.无线局域网 D.无线路由器
11
• 一片容量为 8GB 的 SD 卡能存储大约()张大小为 2MB 的数码照片。 C
A. 1600
B. 2000
C. 4000
A. exe
B. com
C. dll
D. 以上都不是
• 提出“存储程序”的计算机工作原理的是( )。D
冯·诺依曼思想:二进制数、存储程 序和程序控制、硬件由五大部件构 成。
计算机的工作原理就是“存储程序
和程序控制”,也称冯·诺依曼工作
原理。
John von Neumann
冯诺依曼
5
计算机硬件系统
计算机硬件系统均由运算器、控制器、存储器、 输入设备和输出设备五大部分构成。他们之间的逻辑
关系如下图所示:
• 断电后会丢失数据的存储器是() 。a
A. RAM
B. ROM
C. 硬盘
D. 光盘
• 下列对操作系统功能的描述最为完整的是() 。c
A. 负责外设与主机之间的信息交换 B. 负责诊断机器的故障 C. 控制和管理计算机系统的各种硬件和软件资源的使用 D. 将源程序编译成目标程序
信息学奥赛简介NOIP及C基础知识夏令营第一天顺序语句PPT课件
可行性
预知识:程序设计、算法和C++ 0.2、算法
描述算法的方法有多种,常用的有自然语言、结构化流程图、伪代码和PAD图等, 其中最普遍的是流程图。
顺序结构流程图
循环for语句流程图
预知识:程序设计、算法和C++ 0.3、计算机程序
计算机程序 是用计算机语言编写的能完成一定功能的
指令序列。
预知识:程序设计、算法和C++ 0.4、计算机语言
{
//程序开始
cout<<"Hello word!"; //输出”Hello word!”
return 0;
//结束
}
//程序结束
预知识:程序设计、算法和C++ 引例2:计算正方形的面积和周长
【问题分析】:正方形的面积等于边长乘以边长,周长等于4倍的边长。 【算法设计】:正方形的边长用a表示,面积用s表示,周长用c表示,则s=a*a,c=4*a。
信息学奥赛知识
二、信息学奥林匹克竞赛赛事
1.NOIP(全国信息学奥林匹克联赛) National Olympiad in Informatics in Provinces
2.NOI (全国信息学奥林匹克竞赛) National Olympiad in Informatics
3.IOI (国际信息学奥林匹克竞赛) International Olympiad in Informatics
夏令营讲义
(顺序语句)
整体概况
概况一
点击此处输入 相关文本内容
01
概况二
点击此处输入 相关文本内容
02
概况三
点击此处输入 相关文本内容
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
邻接表,空间复杂度O(m),遍历时间复杂度O(m),有一定代码量要 求,不适合新手。
介于两者之间,用f[i][j] 表示i点出去的第j条边 空间复杂度O(n2) 遍 历时间复杂度O(m) 。
虽然图整体较为稀疏,但由于不知道每个点最多有几条边,故还是需
要预开100000*100000的空间 BOOM
10
来十分方便。 • 在开启O2优化的情况下,Vector的访问速度甚至能够快过一般
的数组,在STL的日益普及下,Vector必将被广泛应用。
5
Vector的定义与赋值
如图,Vector既然是一类数组,那它就能够当做数组定义、 使用、赋值。
Vector中可以定义的类型不限,既可以是int、char这样的 类型,也可以是结构体,甚至是Vector。
8
Vector元素的遍历
结合实例,我们可以进一步理解iterator的使用方式。 下面的循环中i++也可以改写为i+=1或i=i+1,可以理解为将i指 向下一个位置。
9
Vector应用——存图
N个点,M条边,点数不超过100000,边数不超过1000000,再求 图上的一些东西。
如何存这幅图?
邻接矩阵,空间复杂度O(n2),遍历时间复杂度O(n2),BOOM!
3
容器(container)
• 经典的数据结构数量有限,但是我们常常重复着一些为了实现向 量、链表等结构而编写的代码,这些代码都十分相似,只是为了 适应不同数据的变化而在细节上有所出入。
• STL容器对最常用的数据结构提供了支持,这些模板的参数允许 我们指定容器中元素的数据类型,可以将我们许多重复而乏味的 工作简化。
Vector应用——谁的孙子最多
给定一棵树,其中1号节点是根节点,问哪一个节点的孙子节点最 多,有多少个。(孙子节点,就是儿子节点的儿子节点。) 【输入要求】 第一行一个整数N(N≤100000),表示树节点的个数。此后N 行,第i行包含一个整数Ci,表示i号节点儿子节点的个数,随后共 Ci个整数,分别表示一个i号节点的儿子节点。
6
Vector的Size与Push_back操作
Push_back(x)是Vector的成员函数,它能够在Vector的末 尾加入一个元素x。
Size()也是Vector的成员函数,其返回值是Vector中的元素 个数。注意,访问不在Vector中的位置是未定义的行为。
7
Vector的Begin、End与iterator
• Insert(x, y)在x对应的元素之前插入了一个值为y的元素。
13
Vector的Erase操作
Erase(x), Erase(x,y)是Vector的成员函数,其中,x,y是迭代器。 分别能够删除x处的元素或区间[x,y)内的元素。 由于Vector的分块存储方式, Erase的复杂度为O(Log(size()))。
16
vector应用——链表操作
接下来M行,每行第一个数OPT,表示操作类型。 对于操作1,接下来两个数X,Y,含义见题面描述,保证0≤X≤当 前数的个数,若X=0,表示在数组开头插入。 对于操作2,接下来一个数X,含义见题面描述,保证1≤X≤当前 数的个数。 【输出要求】 输出若干个数,表示最后的数组。
STL入门
1
STL
Standard Template Library(标准模板库),惠普实验室 开发的一系列软件的统称。
STL的代码从广义上讲分为三类:algorithm(算法)、 container(容器)和iterator(迭代器),几乎所有的代码都采 用了模板类和模版函数的方式,这相比于传统的由函数和类组成 的库来说提供了更好的代码重用机会。
14
Vector的Clear操作
• Clear()是Vector的成员函数,使用后将Vector的Size()设置为0。 • 然而,我们看到,Clear之后,元素并没有被删除,空间也没有
释放。 • 因此,Clear是O(1)的。
15
vector应用——链表操作
给定一个N个数的数组,M次操作,每次操作为下列操作之一。 求最后的数组。 操作1:在第X个数之后插入一个数Y。 操作2:删除第X个数。 【输入要求】 第一行两个整数N,M(N,M≤100000)含义见试题描述。 第二行N个整数,表示原来的数组。
2
STL
• 在C++标准中,STL被组织为下面的13个头文件: <algorithm>、<deque>、<functional>、<iterator>、 <vector>、<list>、<map>、<memory>、<numeric>、 <queue>、<set>、<stack>和<utility>。
11
Vector应用——谁的孙子最多
【输出要求】一行两个整数,表示孙子节点最多的节点,以及其 孙子节点的个数,如果有多个,输出编号最小的。
【输入样例】 5
【输出样例】 11
223
14
0
15
0
12
Vector的Insert操作
• Insert(x, y)是Vector的成员函数,其中,x是一个迭代器,y是 一个具体的值。
17
vector应用——链表操作
【输入样例】
53
12345
116
21
22
【输出样例】
6345
Hale Waihona Puke 18Algorithm库函数在Vector的应用
在每种STL容器中都定义了自己的迭代器类型。 迭代器(iterator)是一种检查容器内元素并遍历元素的数据类 型。 迭代器相当于一种指针,是容器中一个元素的地址,(*迭代 器)才会指向具体的元素。 迭代器的++、--运算被重载过,详见下页实例。 Begin(), End()是Vector的成员函数,返回值分别是Vector 中首个元素的迭代器和Vector中末尾元素向后一位的迭代器。
• 容器部分主要由 <vector>,<list>,<deque>,<set>,<map>,<stack>和 <queue>组成。
4
Vector简介
• Vector是一种动态数组,是基本数组的类模板。 • vector 的存储是自动管理的,按需扩张收缩。 • 需要头文件<bits/stdc++.h>或头文件<vector> • 其内部定义了很多基本操作,包括插入、删除、访问等,使用起