stl的max函数
max_element()及min_element()函数,二者返回的都是迭代器或指针。
头文件:#include algorithm
1.求数组的最大值或最小值
1)vector容器
例 vector vec
最大值:int maxValue = *max_element(v.begin(),v.end());
最小值:int minValue = *min_element(v.begin(),v.end());
2)普通数组
例 a[]={1,2,3,4,5,6};
最大值:int maxValue = *max_element(a,a+6);
最小值:int minValue = *min_element(a,a+6);
2.求数组最大值最小值对应的下标
1)vector容器
例 vector vec
最大值下标:int maxPosition = max_element(v.begin(),v.end()) - v.begin();
最小值下标:int minPosition = min_element(v.begin(),v.end()) - v.begin();
2)普通数组
例 a[]={1,2,3,4,5,6};
最大值下标:int maxPosition = max_element(a,a+6) - a;
最小值下标:int minPosition = min_element(a,a+6) - a;
注意:返回的是第一个最大(小)元素的位置。
STL–sort
sort(first_pointer,first_pointer+n,cmp)
参数解释: 第一个参数是数组的首地址,一般写上数组名就可以,因为数组名是一个指针常量。第二个参数相对较好理解,即首地址加上数组的长度n(代表尾地址的下一地址)。最后一个参数是比较函数的名称(自定义函数cmp),这个比较函数可以不写,即第三个参数可以缺省,这样sort会默认按数组升序排序。
简单例子:对数组A的0~n-1元素进行升序排序,只要写sort(A,A+n)即可;
对于向量V也一样,sort(v.begin(),v.end())即可。
bool myfunction (int i,int j) { return (i<j); }//升序排列
bool myfunction2 (int i,int j) { return (i>j); }//降序排列
sort (myvector.begin(), myvector.begin()+4,myfunction2)
cout<<setw(3)<<setfill(‘0’)<<a<<endl;

利用stringstream
添加头文件 #include
数字转字符串
#include <string>
#include <sstream>
int main(){
double a = 123.32;
string res;
stringstream ss; 定义流ss
ss << a; 将数字a转化成流ss
ss >> res; 将流ss转化成字符串
return 0;
}
字符串转数字
#include <string>
#include <sstream>
int main(){
double a ;
string res= "123.32";
stringstream ss;
ss << res;
ss >> a;
return 0;
}
数字字符转换为数字:
1)最简单的是让数字字符去减‘0’得到的就是数字的值。
示例如下:
char c=‘0’; //'1','2','3',.....'9'
int num=0;
num = int(c - '0');
数字转换为数字字符
和数字字符转数字相反 我们可以加上 ‘0’的ASCII 就可以变为char类型
int a=1;
char c=a+‘0’; //c的值就是’1’的ASCII码值
本文详细介绍了STL中max_element与min_element函数的使用方法,包括如何求数组和vector容器的最大值、最小值及其对应下标,并提供了代码示例。同时,还讲解了STL sort函数的用法,以及数字与字符串之间的转换技巧。
1万+

被折叠的 条评论
为什么被折叠?



