stdafx与stdafx.h食用方法
注意:本篇内容仅针对Windows7,Dev-C++!!!
因为Mac OS和Linux都没用过
1.文件位置
stdafx文件不能有后缀!文件图标必须是一片空白!不能有内容!
stdafx.h只能有.h后缀!
这两个文件都保存在Dev-C++的目录下,路径为:
系统默认(即安装Dev-C++的时候没有更改安装目录)32位:
C:\Program Files\Dev-Cpp\MinGW32\include
系统默认(即安装Dev-C++的时候没有更改安装目录)64位:
C:\Program Files (x86)\Dev-Cpp\MinGW64\include
32位:
Dev-C++安装目录\MinGW32\include
64位:
Dev-C++安装目录\MinGW64\include
2.食用方法
直接复制到目录下,在之后的工程中就可以使用啦!
用法(有复制stdafx中的内容):
#include<stdafx>
如果你只复制了stdafx.h的话,那么你就必须要加.h后缀。
在正式使用前推荐先将stdafx.h文件在Dev-C++中先按F9编译一下,这样可以省去不少时间,在以后工程中引用的时候就不需要引用一次编译一次了。
3.文件说明
高精度除法已经修复。
转载请注明出处。
4.函数用法
说明:int、long long等整数类型以下皆称为“整数”。
- INT:
高精度类,包含绝大多数普通int的操作。
- 各个INT函数:
INT gcd(INT x,INT y)
最大公约数不解释。
INT pow(INT base_num,INT exponent)
快速幂,base_num是底数,exponent是指数。
INT pow(INT base_num,INT exponent,INT mod)
同上,多了个mod而已。
INT sqrt(INT x)
二次根,向下取整。
- 各个数学函数:
template<typename T>T gcd(T x,T y)
适用于整数的gcd,具体用法见文末。
template<typename T>T lcm(T x,T y)
最小公约数函数,适用于整数。
template<typename T>T pow(T base_num,T exponent)
快速幂。
template<typename T>T pow(T base_num,T exponent,T mod)
同上,多了个mod。
template<typename T>T factorial(T x)
阶乘函数,适用于大部分C++原有类型(除了STL)。
template<typename T>T square(T x)
没什么用,返回平方值而已。
template<typename T>T lowbit(T x)
一般是树状数组用的,返回x二进制下末尾0的个数。
template<typename T>double distance(T x_1,T y_1,T x_2,T y_2)
求两点间距离函数。
template<typename T>int sgn(T x,T y)
符号函数,大于0返回1,等于0返回0,小于零返回-1。
bool is_prime(int n)
判断素数函数,效率较好。
template<typename T>void make_prime_table(int length,T f[])
素数表函数(埃筛),length是长度,f是标记数组。
void read(LL &num)
快读函数,整型。
void read(double &num)
快读函数,浮点型。
template<typename T>void read(int l,int r,T array[])
快读函数,l为左下限,r为右下限,array是要读入数据的数组。
template<typename T>void write(T num)
快输函数,整型。
int find(int x,int pre[])
并查集专用函数,pre是并查集数组。
int join(int x,int y,int pre[])
同上。
LL random()
随机数函数,数据范围更大。
LL random(LL mod)
同上,加了个mod而已。
ULL urandom()
保证返回数据为非负数。
ULL urandom(LL mod)
同上,加了个mod而已。
注:template用法:
所有有加template的函数,可以传入大部分的C++原有类型(除非有注明特别适用于某种类型),用法和普通函数并无区别。