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;	
}

结果

3.