栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

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

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

实用的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) {}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/656323.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号