


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
针对C程序员的TopCoder C+ C+是在C语言基础上添加面向对象扩展而成。C+在提供很多传统C语言没有的优点的同时也保持了与C语言的兼容性,这样人们就可以在一个程序中同时使用C和C+。在比赛当中,您必须使用一些基本的C+功能来解答问题。下面我们对熟悉C语言的程序员简单介绍一些参加比赛必须知道的C+知识。 类和方法C+中最重要的新添加概念就是类。类可以包含方法和变量。在比赛时,您必须编写一个包含至少一个方法的类。做为一个例子,请看下面的问题定义: 类:CellTower方法:best参数:vector , int, int返回:int方法签名:int best(vector towers, int x, int y)解答这个问题您需要创建一个名为CellTower的类。这个类必须含有一个名为best的方法。方法best必须有三个参数(vector, int, and int)并且返回一个整型(int)值。 类是用class关键字定义的。定义类和定义一个C结构在语法结构上类似。要定义上面那个题目所要求的类,可以使用下面的代码: class CellTower public: int best(vector towers, int x, int y) /您的代码 ;方法的定义方式和定义一个C函数相似。关键字public告诉编译器我们定义的方法任何对象都可以调用。只有这样测试程序才能正确运行您的代码。 STL很多在比赛中经常被使用的类和函数都来自于标准模板库,通常英文缩写为STL。STL提供了一套通用的库,其中包含了从基本的字符处理到复杂的排序算法等各种工具。 参加比赛您必须熟悉至少两个类:vector和string。 包含(Includes)在您使用STL中的类之前,您必须在代码中包含相应的头文件。vector类来自于头文件“vector”;string类来自于“string”。您还需要在代码中加上如下一行:using namespace std; 这行告诉编译器到std名字空间中去寻找类。Vectorvector是C+中用来取代C数组的。vector解决了传统C语言数组的许多问题。vector能查询当前数组大小以及动态调整大小。用 vector 可以声明vector,其中类型是存储在vector中的变量类型。比如如果您想创建一个包含int的vector,可以使用: vector myVar;新创建的vector大小为0。声明一个其它大小的vector,您可以使用: vector myVar(10);在这个例子中新创建的vector大小为10。 要设置或者读取vector中某一项,您可以使用和C语言中处理数组相似的语法: vector myVar(10); myVar0 = 1; /设置在位置0的项为1 printf(%i, myVar0); /输出1C语言数组有一个重大缺陷是程序运行时无法知道数组到底有多大。这给循环读取数组中的每一项造成了困难。如果使用vector,这个任务就变得非常容易。size()方法返回vector的当前大小: for(int i = 0; i myVar.size(); i+) printf(%i, myVari); /输出第i项 使用resize方法可以重新调整vector的大小: myVar.resize(15); /myvar的大小变成了15vector类提供了其它很多很有用的功能,点击下面的参考链接了解更多关于vector的知识。 字符串(string)string类是用来代替char*表达字符串的。string提供了基本的字符处理并且提供了一个方法让很多使用char*的函数仍旧可以使用string。您可以使用=和+操作符赋值给string: string s; s = Hello; s = s + , world;s一开始是空字符串(大小为0)。在第二行s的值变为“Hello”。然后“, world”被添加到了s的末端,s的值变成了“Hello, world”。 方法size()返回字符串的长度。这些代码: string s = Hello; printf(%i, s.size();将会输出5。 您可以象访问char数组一样访问string中的某一个字符: string s = Hello; printf(%c, s0); /输出 H s0 = h; /s变成了hello如果一个函数要求char*参数,可以使用c_str()方法: string s = Hello; printf(%s, s.c_str(); /输出 Hello解答实例请看下面的例题: 我们的输入程序将记录键盘输入到一个字符序列中。我们想把输入字符序列转换到一个单独的string中以便于日后使用。创建一个方法buildstring。这个方法接受一个vector 类型的参数。这个参数代表了键盘的输入序列。buildstring方法必须返回把从这个输入序列合并而成的string。 类: StringBuilder方法: buildString参数: vector 返回: string方法签名: string buildString(vector array) 如下的解答使用string和vector解决了这个问题: #include #include using namespace std; class StringBuilder public: string buildString(vector array) /创建将要返回的string string s; /循环读取数组中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 婴儿洗澡卡活动方案策划(3篇)
- 实体1元活动策划方案(3篇)
- 辽宁专业活动策划执行方案(3篇)
- 国企物业春节活动方案策划(3篇)
- 北京市昌平区2024-2025学年八年级下学期第一次月考英语考点及答案
- 心动客服面试题目及答案
- 物流运输效率提升优化方案设计模板
- 青春不是生命的终点:议论文思维训练教案
- 宠物临时寄养合同
- 营销活动策划方案模板与评估标准
- 神经外科术后高热患者的治疗及护理讲课件
- 社区警务团队管理制度
- 应急消防疏散培训课件
- 产房分娩安全管理制度
- 食堂从业人员健康管理制度
- 普通化学无机化合物
- Q-GDW10166.1-2025 输变电工程初步设计内容深度规定第1部分:110(66)kV架空输电线路
- JG/T 503-2016承插型盘扣式钢管支架构件
- 2025年福建省无人驾驶航空器操作控制职业技能大赛(航拍无人机驾驶员)试题(附答案)
- 落户防离职协议书
- 职称评审委托合同协议
评论
0/150
提交评论