C++是在C语言基础上添加面向对象扩展而成。C++在提供很多传统C语言没有的优点的同时也保持了与C语言的兼容性,这样人们就可以在一个程序中同时使用C和C++。在比赛当中,您必须使用一些基本的C++功能来解答问题。下面我们对熟悉C语言的程序员简单介绍一些参加比赛必须知道的C++知识。 class CellTower { public: int best(vector<string> towers, int x, int y) { //您的代码 } }; 方法的定义方式和定义一个C函数相似。关键字public告诉编译器我们定义的方法任何对象都可以调用。只有这样测试程序才能正确运行您的代码。 这行告诉编译器到std名字空间中去寻找类。 Vector vector<int> myVar; 新创建的vector大小为0。声明一个其它大小的vector,您可以使用: vector<int> myVar(10); 在这个例子中新创建的vector大小为10。 vector<int> myVar(10);
myVar[0] = 1; //设置在位置0的项为1 printf("%i", myVar[0]); //输出1 C语言数组有一个重大缺陷是程序运行时无法知道数组到底有多大。这给循环读取数组中的每一项造成了困难。如果使用vector,这个任务就变得非常容易。size()方法返回vector的当前大小: for(int i = 0; i < myVar.size(); i++) { printf("%i", myVar[i]); //输出第i项 } 使用resize方法可以重新调整vector的大小: myVar.resize(15); //myvar的大小变成了15 vector类提供了其它很多很有用的功能,点击下面的参考链接了解更多关于vector的知识。 string s; s = "Hello"; s = s + ", world"; s一开始是空字符串(大小为0)。在第二行s的值变为“Hello”。然后“, world”被添加到了s的末端,s的值变成了“Hello, world”。 string s = "Hello"; printf("%i", s.size()); 将会输出5。 string s = "Hello"; printf("%c", s[0]); //输出 "H" s[0] = 'h'; //s变成了"hello" 如果一个函数要求char*参数,可以使用c_str()方法: string s = "Hello"; printf("%s", s.c_str()); //输出 "Hello" 解答实例 #include<vector> #include<string>
using namespace std;
class StringBuilder { public: string buildString(vector<char> array) { //创建将要返回的string string s;
//循环读取数组中的每一项 for(int i = 0; i < array.size(); i++) { s = s + array[i]; }
//返回创建的string return s; } }; 额外参考C++和STL类库有几百个函数和类。这些函数和类是用来提高编程速度和效率的。下面列出的参考对我们上面没有讨论到的东西,以及整个C++,提供了简要概述。 C++: C++指南 针对C用户的C++指南 名字空间 名字空间指南 C++名字空间 Vectors: vector参考 vector类 STL: STL 程序员指南 C++标准模板库速成 |