算法竞赛中c++使用优势及劣势 - Go语言中文社区

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


  由于入行没多久,所以编写不太完善,希望大家能帮忙补充。


  对于优势方面,我认为有以下几点:
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;
}

 

 

 

 

 

这是一些函数应用及字符串简单操作,微微展示一下,其实远远不止这些。希望大家多查阅资料,作为初学者,也希望多注意代码风格。
 

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/qq_38367681/article/details/78816603
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-06-28 04:06:08
  • 阅读 ( 1101 )
  • 分类:算法

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢