对于我这样的蒟蒻来说,STL半生不熟,算法和数据结构更是一窍不通,这个时候就需要一些实用的STL函数来解决一些问题,注意这里不会详细列出参数或者模板,只是保证会用即可
一.min,max函数
不用细说,最常用的函数,不用手写了,拥有algorithm头文件都搞定,比较两数大小,除此之外可以比较string,char,double等,但是不能跨数据类型比较
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int a;
int b;
cin>>a>>b;
cout<<max(a,b)<<endl;
cout<<min(a,b)<<endl;
return 0;
}
二.max_element与min_element
他们返回的是指向最大最小值的指针,适用于int,char,string,double数组等,非常直观,对于求最值的问题十分实用,代码如下:
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int arr[5];
for(int i=0;i<5;i++)
{
cin>>arr[i];
}
cout<<*max_element(arr,arr+5)<<endl;
cout<<*min_element(arr,arr+5)<<endl;
return 0;
}
三.nth_element函数
找出第n大或者第n小的数,十分方便,注意他的返回值为空,相当于quickSort中的partition操作,使指定位置放上合适的数据,使得前面的数据一定小于他,后面的数据一定大于等于他,即破坏了数组原有的秩序,同样适用多种数据类型,代码如下:
#