经常用到的小技巧(不定期更新)

时间:2022-01-07 06:36:25

感觉有好多比较巧妙的东西总是过段时间就忘了

用到的时候再找就不是那么容易了

在这里写篇博客保存些常用的东西,利人利己

-------------------------------------------------------------------------

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