——< climits >头文件
climits中的符号常量
符号常量 | 表示 |
---|---|
CHAR_BIT | char的位数 |
CHAR_MAX | char的最大值 |
CHAR_MIN | char的最小值 |
SCHAR_MAX | signed char的最大值 |
SCHAR_MIN | signed char的最小值 |
UCHAR_MAX | unsigned char的最大值 |
UCHAR_MIN | unsigned char的最小值 |
SHRT_MAX | short 的最大值 |
SHRT_MIN | short的最小值 |
USHRT_MAX | unsigned char的最大值 |
INT_MAX | int的最大值 |
INT_MIN | int的最小值 |
UINT_MAX | unsigned int的最大值 |
UINT_MIN | unsigned int的最小值 |
LONG_MAX | long 的最大值 |
LONG_MIN | long的最小值 |
ULONG_MAX | unsigned long的最大值 |
ULONG_MIN | unsigned long的最小值 |
LLONG_MAX | long long的最大值 |
LLONG_MIN | long long的最小值 |
ULLONG_MAX | unsigned long long的最大值 |
——< algorithm >头文件
algorithm头文件下常用函数:
1) max( )
返回x和y中的最大值,且参数必须是两个
2) min( )
返回x和y中的最小值,且参数必须是两个
3) abs( )
abs(x) 返回x的绝对值。x必须为整数。浮点型的绝对值要用math头文件下的fabs
4) swap( )
swap(x,y)用来交换x和y的值
5) reverse( )
reverse(it,it2) 可以将数组指针在[it,it2)之间的元素 或 容器的迭代器在[it,it2)范围内的元素进行反转。
#include<stdio.h> #include<algorithm> using namespace std; int main() { int a[10]={10,11,12,13,14,15}; reverse(a,a+4); for(int i=0;i<6;i++){ printf("%d ",a[i]); } return 0; } #include<stdio.h> #include<string> #include<algorithm> using namespace std; int main() { string str="abcdefghi"; reverse(str.begin()+2,str.begin()+6); for(int i=0;i<str.length();i++){ printf("%c",str[i]); } return 0; }
6) next_permutation( )
next_permutation() 给出一个序列在全排列中的下一个序列
#include<stdio.h> #include<string> #include<algorithm> using namespace std; int main() { int a[10]={1,2,3}; do{ printf("%d %d %d\n",a[0],a[1],a[2]); }while(next_permutation(a,a+3)); return 0; }
7) fill( )
fill() 可以把数组或容器中的某一段区间赋为某个相同的值。和memset不同,这里的赋值可以 使数组类型对应范围中 的任意值。
#include<stdio.h> #include<string> #include<algorithm> using namespace std; int main() { int a[10]={1,2,3,4,5}; fill(a,a+5,233); for(int i=0;i<5;i++){ printf("%d ",a[i]); } return 0; }
6) sort( )
默认为递增排序
* 若要递减排序,需要增加比较函数
bool cmp(int a,int b){ return a>b; } sort(a,a+n,cmp);