e媒网络

算法竞赛中C++使用优势及劣势

2018/2/8 11:44:19 人评论 次浏览 分类:教育资讯

对于优势方面,有以下几点:

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更优秀啦。


第一期 少儿编程精英班 最多8人。课程内容涉及[Python零起步] [Sqlite初步] [计算机编程英语]三门内容。

【行易少儿编程】 公众号名称为:KidsCode 微信号为:KidCodes

手机微信扫描下方二维码,关注我们: