1. min_element()和max_element
头文件:#include<algorithm>
作用:返回容器中最小值和最大值的位置。max_element(first,end,cmp);其中cmp为可选参数。用法一般为找到迭代器中的最值。
例子:
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
bool cmp(int a,int b)
{
return a>b;
}
int main()
{
int num[]={5,9,4,3,7,6,1,8,2};
int len=sizeof(num)/sizeof(int);
vector<int> v(num,num+len);
v.push_back(0);
v.push_back(10);
cout<<"num:";
for(int i=0;i<len;i++)cout<<num[i]<<" "; cout<<endl;
cout<<"num的最小值是 "<<*min_element(num,num+len)<<endl;
cout<<"num的最小值的位置是 "<<min_element(num,num+len)-num<<endl;
cout<<"num的最大值是 "<<*max_element(num,num+len)<<endl;
cout<<"num的最大值的位置是 "<<max_element(num,num+len)-num<<endl;
cout<<"------------------------------\n";
cout<<"v:";
for(auto it=v.begin();it!=v.end();it++) cout<<*it<<" ";cout<<endl;
cout<<"v的最小值是 "<<*min_element(v.begin(),v.end())<<endl;
cout<<"v的最大值是 "<<*max_element(v.begin(),v.end())<<endl;
cout<<"v的最大值是 "<<*min_element(v.begin(),v.end(),cmp)<<endl;
cout<<"v的最小值是 "<<*max_element(v.begin(),v.end(),cmp)<<endl;
return 0;
}
结果:
文档——>https://stdcxx.apache.org/doc/stdlibref/max-element.html
2. isdigit()
头文件:#include<cctype>或者#include<ctype.h>
作用:isdigit是计算机C(C++)语言中的一个函数,主要用于检查其参数是否为十进制数字字符。
int isdigit(int c),若参数c为阿拉伯数字0~9,则返回非0值,否则返回0。
例子
#include<iostream>
#include<string>
#include<cmath>
#include<algorithm>
#include<cctype>
using namespace std;
/*作用:将radix进制数str转化为10进制数,之所以用long long是为了防止溢出 (a的每一位分别为0~9或者a~z,其中a~z分别表示10~35)*/
long long toDecimal(string str,long long radix){
long long sum=0;
int index=0,temp=0;
for(auto it=str.rbegin();it!=str.rend();it++){
temp=isdigit(*it)?*it-'0':*it-'a'+10;
sum+=temp*pow(radix,index++);
}
return sum;
}
int main()
{
string a;
cin>>a;
long long res=toDecimal(a,35);
printf("35进制数%s转换为10进制数为%lld\n",a.c_str(),res);
return 0;
}
结果