常用函数分析
绝对值函数abs
包含头文件
库函数定义
int abs( int num );
float abs( float num );
double abs( double num );
long double abs( long double num );
long long abs( long long num );
总之:abs函数可用于int,float,double,long double,long long
lower_bound()与upper_bound()
用二分查找,在一个有序的序列中,查找大于等于(大于)\(x\)的数
注意:序列必须有序,否则需要先\(sort\)排序一下
时间复杂度:\(O(log(n))\)
用法一:
在升序序列中查找第一个大于等于(大于)x的数,如果找不到,则返回数组最后一个元素的下一个
int a[10] = {0, 1, 4, 3, 7, 2};
sort(a+1, a+1+5);
//在a[1~5]之间查找第一个大于等于x的数
//如果没有则返回a[5]的下一个位置
lower_bound(a+1, a+1+5, x);
//在a[1~5]之间查找第一个大于x的数
upper_bound(a+1, a+1+5, x);
用法二:
在降序序列中查找第一个小于等于(小于)x的数,如果找不到,则返回数组最后一个元素的下一个
int a[10] = {0, 1, 4, 3, 7, 2};
sort(a+1, a+1+5, greater<int>());
//在a[1~5]之间查找第一个小于等于x的数
//如果没有则返回a[5]的下一个位置
lower_bound(a+1, a+1+5, x, greater<int>());
//在a[1~5]之间查找第一个小于x的数
upper_bound(a+1, a+1+5, x, greater<int>());