实用的C++编程技巧:适用于OJ程序设计竞赛CSPACM(持续更新中)

实用的C++编程技巧:适用于OJ程序设计竞赛CSPACM(持续更新中),第1张

实用的C++编程技巧:适用于OJ/程序设计竞赛/CSP/ACM(持续更新中)

本篇博客就C++中的一些实用编程技巧进行总结,适合于初学者。持续更新中,欢迎评论区补充。

  • 解决爆栈问题,手动加栈,必须放在头文件之前:
#pragma comment(linker,"/STACK:1024000000,1024000000") 
  • 可以使用typedef定义long long的缩写为ll,这样在用到long long时,直接使用ll代替,节省时间。
typedef long long ll;
  • 学会使用pair。当一个数组或者vector中只有两个元素时,使用pair最为简单。pair的定义可以进一步简化,比如我们可以用long long简化为ll相同的方式,把string与int组成的pair简写为psi,这样每次使用的时候相当方便。
typedef pair psi;
  • 运算符重载的技巧可以与sort排序相结合,从而实现直接对类进行sort排序。例如:
class Student {
	public:
		Student(int p) {
			this->pno=p;
		}
		int pno;
		int score;
		//运算符重载,从而可以sort排序
		bool operator < (const Student& s) const {
			return this->pno 
  • 提高cin与cout的速度有一种方法,那就是:
ios::sync_with_stdio(false);

不过可惜的是,这样还是不如scanf快,因此如果时间要求苛刻的话,还是老老实实用scanf和printf吧!

  • C++中的输入方法总结:
char ch=cin.get();//读入单个字符
string str;
getline(cin,str);//#include,读入一行,可以读入空格
char cha[100];
cin.getline(cha,100); //#include ,读入一行,可以读入空格
gets(cha);  //可以读入空格
  • 某些oj无法直接复制输入样例,或者某些终端没法直接粘贴,这样的话,可以将C++标准IO流变为文件IO流,但是用完记得删掉,不然就wa了!
freopen("1.txt","r",stdin);
freopen("2.txt","w",stdout);
  • 不确定输入个数时的读入方法:
while(cin>>n) {}

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5658405.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存