常用函数分析

绝对值函数abs

包含头文件 或 <std/c++.h>
库函数定义
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>());	
posted @ 2024-01-05 16:28  毛竹259  阅读(73)  评论(0)    收藏  举报