感觉有好多比较巧妙的东西总是过段时间就忘了
用到的时候再找就不是那么容易了
在这里写篇博客保存些常用的东西,利人利己
-------------------------------------------------------------------------
1、cout的输出比printf慢,大量输入时不要使用cout,不然容易TLE
如果出现一定要用或者用起来很方便的时候可以考虑加上
cin.sync_with_stdio(false);语句来提升效率
2、cout的输出处理,有时候需要输出限定精度的小数,很多人可能会用printf,但其实cout也可以的
介绍一种常用的:
下面两行代码对应的是输出定点12位小数的结果
比如:
1.75000000000000
cout.setf(ios::fixed);//设置定点输出
cout.precision(12);//设置输出位数
cout.unsetf(ios::fixed); //取消定点输出
3、cout的重定向,例子如下:
#include <fstream>
#include <iostream>
using namespace std;
int main() {
ifstream in("in.txt");
ofstream out("out.txt");
cin.rdbuf(in.rdbuf());
cout.rdbuf(out.rdbuf());
cin >> str;
cout << str << endl;
return 0;
}
4、一条语句引入c++头文件
还在为每次敲代码打头文件而头痛么?
哈哈,今天发现了一个很厉害的东东
#include <bits/stdc++.h>
百度了一下,这条语句可以引入几乎所有c++常用的头文件
亲身试了下国内几个oj只有zoj可以用(事实上zoj连php都可以用,所以我一点也不奇怪)
但是做codeforces topcoder爽一爽还是可以的
5、浮点类型比较大小(精度要求)
int sgn(double x) {
//判断当前x的符号,一般x为一个表达式
return (x>eps)-(x<-eps);
}
6、c++字符串读入一行
有时候需要读取含空白字符的字符串,这时候就需要用:
cin.getline(str, len);
7、fmod函数
fmod函数用于向上取模
值得一说的是它可以用来取小数部分
比如a = 1.235
则a fmod ((int)a) = 0.235