C++在PTA里常使用的函数
在pta刷题的时候有一些常用的头文件内置函数,灵活的使用它们可以加快做题速度
1.max和min
int a,b;
scanf("%d %d",&a,&b);
printf("%d %d",max(a,b),min(a,b));//输出最大值,最小值
2.abs
int a;
scanf("%d",&a);
printf("%d",abs(a));//输出a的绝对值
3.strcmp
char a[15],b[15];
scanf("%s %s",a,b);
if(strcmp(a,b)==0)printf("相等");//可以用来判断字符串是否相等
bool cmp(person a,preson b){//用于sort的比较函数
return strcmp(a,b)<0;//按照字典序小的在前面排序
}
4.strcpy
char a[120],b[120];
scanf("%s",a);
strcpy(a,b);//字符串a复制给b
5.strlen
char a[100];
scanf("%s",a);
printf("%d",strlen(a));//输出a的长度
6.memset
int a[100];//这里说明下,数组声明后数组元素都为0
int b[100]={0};//也可以这样赋予全为0
memset(a,-1,sizeof(a));//memset将a全置为-1,注意第三个参数不认换成100
bool c[1000];
memset(c,false,sizeof(c));//也可以对bool型赋初值
7.fill
int dis[1010];
fill(dis,dis+1010,INT_MAX);//将dis的元素全赋成INT_MAX(STL中很大的一个数),注意不能使用memset,我们常用memset赋值0,-1,fasle等,如果想赋值>=1的数,要用fill
//除此之外,fill赋值的时候比memset更灵活,因为它可以指定赋值范围
fill(dis+100,dis+200,INT_MAX);
8.lower_bound和upper_bound
int a[n];
int pos1=lower_bound(a,a+n,100);//在数组a中找到第一个>=100的位置返回
int pos2=upper_bound(a,a+n,100);//在数组a中找到第一个>100的位置返回
9.swap
int a[20];
for(int i=0;i<20;i++){
a[i]=i;
}
for(int i=0;i<19;i++){
swap(a[i],a[i+1]);//交换函数
}
for(int i=0;i<20;i++){
cout<<a[i]<<endl;
}
//最后输出结果0在数组最后面
10.getchar
//用于输入得到一个字符
char c=getchar();
//也常用于scanf()和getline()中间吸收掉换行符
int n;
string str;
scanf("%d",n);
getchar();
getline(cin,str);