总结一下C++刷题过程中的小技巧
一、关于读写方面
如果在刷题时需要自己输入和输出数据,可以考虑以下方面
1.养成使用快读和快写的习惯,因为快读依赖于getchar()函数,而getchar比scanf和cin有更快的速度,所以使用快读和快些会进一步加快代码速度 (快读快写可以直接在网上找模板,直接在网上搜C++快读快写)
2.scanf() 比 cin 有更快的读入速度 有一些题cin过不了而scanf更快 如果不喜欢用快读也要尽量用scanf函数
二、关于变量定义和数组定义
定义位置
无论是数组还是变量尽量定义在int main()上方。
#include <bits/stdc++.h> //万能头
using namespace std;
// 定义在这个位置
int main(){
}
一方面方便定义的方法可以直接操作数组或者变量
另一方面如果数组定义在int main中,当数组开太大时会爆掉,因为定义在main中相当于局部变量,会开在栈上,开太大会导致爆栈。
变量定义
1.关于一些数值类型变量的定义,尽量在定义之前估计出最大值,如果无法估计出最大值是多少,而这时代码提交上去还有出错的情况时,可以考虑开为long long再试一次。
数组长度
2.在开数组时,尽量多开一点,例如需要接受100个数据,可以将数组开位105,110左右,而如果刚好开到100,这样很有可能出错。
三、学会使用STL标准库
c++ 的STL库使用好会帮助你解决很多问题,同时也会节省时间。(可以直接搜C++STL去了解和学习相关知识)
四、总结属于自己的一套模板
在刷题过程中往往会遇见一道题有部分可以套用模板的部分,对于这种情况完全可以花费些时间总结一下属于自己的一套代码模板,既加深了对代码的理解,也方便下次使用。
总结模板不是为了复制粘贴,是为了在下次使用可以更快更精确的写出来,更是在遇见一些稍微变了一点的题时可以更快联想到之前做过的,更快拥有做题思路。