<cmath>
double hypot(double x, double y)
求三角形斜边 (hypotenuse)
<cmath>
double frexp(double x, int &exp)
将x分解成尾数和指数,指数存入exp,返回尾数
1..n的圈,循环数d步。
p = (p + d + n - 1) % n +1;(从1到n)
p = (p + d + n) % n;(从0到n - 1)
<cctype>
bool isalpha(char)
bool isdigit(char)
char toupper(char)
<cmath>
double pow(double a, double b) a ^ b
返回double,误差挺大的,比如int t = 2,pow(10,t),不同编译器,有可能返回99.99999,直接赋给int,只得到99。
double round(double x)
将x向最近的整数取整,即四舍五入,然后转化为double。
一定要用pow可以(int)round(pow(10,t))
或者直接循环t次乘10。
double floor(double x)
double ceil(double x)
<algorithm>
int p =lower_bound(a , a + n, x) - a;
在有序数组中, a到a + n中寻找大于等于x的数,返回第一个符合条件的数的地址。
// p就为坐标
// if(a[p] == x)...
vector <int> v;
v.resize(int t) //改变大小,使只保留0 - t-1个元素
v.pop_back() //删除最后一个元素
<cstdlib>
stand(time(NULL));//程序执行开头调用一次即可,不能每次产生随机数时调用。
rand();//随机均匀生成[0,RAND_MAX]中的整数,RAND_MAX至少为32767
若要生成[0,n]中的数,rand() / RAND_MAX * n,四舍五入,若n很大精度稍差。
string s;
s.substr(id,len);//以下标id为开头,长度为len的子串
s.substr(id);//以下标id为开头,一直到末尾的子串
s.find(char c);//返回第一个该字符的下标
if(s.find(char c) !=string::npos) {} //当找得到字符时才进行操作
C++ STL 求向量中的最大值和最小值
min_element(v.begin(),v.end()) 返回最小的元素的位置
max_element(v.begin(),v.end())
序列 [first, last)。