由于入行没多久,所以编写不太完善,希望大家能帮忙补充。
对于优势方面,我认为有以下几点:
1.有着丰富的函数库。
2.可以使用c++标准模板库(stl),极大的方便了操作。
3.操作相对于其他语言比较方便。
对于劣势方面,我认为有以下几点:
1.缺少大数的应用。
2.输入输出速度弱于c,同时一些库函数的耗时也高于自己写的函数。
3.对于输出的结果的格式控制较麻烦。
对于优势介绍
1:c++有着极其丰富的函数库,造就了其丰富的功能,其中<algorithm>文件中,我们可以直接调用库函数max,min进行比较,直接调用sort进行排序,直接调用swap交换,还有lower_found等等,希望大家自己搜索了解。
2:stl的代码从广义上讲分为三类,algorithm(算法)、contain(容器)、iterator(迭代器)。几乎所有的代码都采用了模板类和模板函数的方式。极大的方便了竞赛中的使用,这个我会单独弄一个专题,以后会贴上链接,希望大家也可以百度了解.
3:简单的输入(cin)输出(cout)不管什么类型可以直接接受,字符串也可以直接用大于小于比较,也可以a +=
b直接向a字符串中添加字符或者字符串b;(不过字符串需要用定义成string类型),for循环中变量也可以直接内部定义(for(int i = 0; i <
n; i++)) 等,同时携带各种库函数,以及stl,极大的方便了代码的操作。
对于劣势介绍
1:意思很明显,就是没有办法直接操作大数,借用数组明显比较麻烦,所以个人建议遇见大数问题直接用java大数,以后会贴上java大数链接。
2:输入输出速度比较慢,大约比scanf,printf慢了十倍!(
cin与stdin总是保持同步的,也就是说这两种方法可以混用,而不必担心文件指针混乱,同时cout和stdout也一样,两者混用不会输
出顺序错乱。正因为这个兼容性的特性,导致cin有许多额外的开销,如何禁用这个特性呢?只需一个语句
std::ios::sync_with_stdio(false);,这样就可以取消cin于stdin的同步了,此时的cin就与scanf差不多 了。
)所以建议在c++中也使用scanf,printf。同时类似于max之类的库函数会比自己写的慢一点,有些时候也会导致超时。当然,这不是不能使用,计算好时间复杂度,如果时间足够,自己随便使用。
3:对于输出格式控制方面,当然printf更优秀啦。
#include<algorithm> #include<string> #include<iostream> using namespace std;
int main() { int x = 1, y = 2; cout << max(x, y) << endl; //输出两数中最大的数 cout <<
min(x, y) << endl; //输出两数中最小的数 swap(x, y); //交换x和y的值 cout << x << endl; int
N[5] = {1, 0, 7, 4, 5}; sort(N, N + 5); //排序,默认从小到大,用cmp函数可以调整状态 for(int i = 0;
i < 5; i++) { cout << N[i] << ' '; } cout << endl; string a = "123", b = "456";
char c = '7'; a += b; //字符串加上字符串 cout << a << endl; a += c; //字符串加上字符 cout << a
<< endl; return 0; }
这是一些函数应用及字符串简单操作,微微展示一下,其实远远不止这些。希望大家多查阅资料,作为初学者,也希望多注意代码风格。
热门工具 换一换