C++刷题秘籍

C++刷题秘籍
在经过一个暑假的刷题过程中(只刷了pat乙级和洛谷新手村),总结了一下一些很有用的知识和函数,了解这些可以再刷题的时候避免自己写一大堆不必要的代码,在做题的时候节省时间。不同的函数也可以开阔自己的解题思路,从而更快想出最佳的解答方法。如果有在用C++进行刷题的小伙伴可以看看。不足的地方也希望大家能够指出来,一起学习一起进步。

1、为什么用C++
C++的好处在于它和C语言一样是比较底层的语言,写代码的时候自由度很大,也就是你可以用最本质方法写程序。就好比你想造一辆车,用C++的话就等于用一个一个零件做,用面相对象语言的话就是等于用造好了的一些部位进行拼凑。造好了的东西一般不一定能符合题目要求,库函数又不好改,显然c和c++在刷题有很多便捷的地方。而且C++完全兼容C,很多C的东西也可以拿过来直接用,这点特别舒服,我的代码经常都是C混着C++写的。C++还有几个强大的类库vector map string,也就是这些类库的存在让我们不选择C,而是用C++,这点用过的人都说好。

2、输入
做题第一步,当然是输入啦。如果一个题目的数据连输入都不知道怎么输入的话,基本没法动手,一个好的输入代表这数据调用方便,层次也很清楚,并且节省内存。从pat的题目上看,近年来输入的难度也开始增大,也就是说数据量开始变大,让人不好处理。

cin:神器,在数据量少的时候用着特别爽,关键就是只要按三下键盘就完成了。比java输入方便太多了。cin在输入字符串的时候要注意,cin遇到空格啊回车啊制表符什么的都会停止,字符串有可能有空格的话一定不要用

getline:用于string类专门处理cin输入空格的制表符会停止的问题,语法为getline(cin,str);这种输入字符串的形式只有遇到回车才会停止,巨好用。但是有一个坑就是:如果在用getline输入字符串之前用了cin,必须要用一个getchar来吸收cin后面的回车符。

gets:用于C语言char类型字符串输入,也是专门处理遇到空格会停止的问题,基本和getline类似。

Scanf:C语言风格输入,这玩意巨牛逼,能帮你跳过一些不必要的输入。用这个函数的时候必须输入的和这个函数里面的格式对应,这不是一个坏处。可以让你把有用的数据提出来,因为有时候题目给的输入并不是所有都是要存起来的。举一个例子:
需要输入的是(a),但是有用的数据却是a,括号自然可以舍去。
scanf("(%c)",&a);这样写显的就很方便。
并且,在数据量很大的时候,scanf比cin速度快,本人亲测~

数字和字符串:这是两个很神奇的东西,比如输入12345678987654321,这到底是一个数字还是字符串,答案当然是看题目啦,题目如果可以让这个长度超过50位以上,尽量用字符串,long long也是有限的,而字符串基本可以说可以让数字无限大。字符串和数字还有很多很方便转换的函数,这些在后面会继续提到。

3、输出
cout:除了敲起来比printf快找不到任何优点。

printf:强大无比的输出函数,找不到任何缺点。
保留两位小数:%.2lf
输出正号:%+d
按5位数的格式输出 %05d 如0,在这个格式下输出00000
同样,在数据量大的时

  • 8
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值