在普通数组中
例 a[]={1,2,3,4,5,6};
int maxValue = *max_element(a,a+6);//最大值
int minValue = *min_element(a,a+6);//最小值
int maxPosition = max_element(a,a+6) - a;//最大值下标
int minPosition = min_element(a,a+6) - a;//最小值下标
在vector数组中
vector<int> v{1,2,3};
int maxPosition = max_element(v.begin(),v.end()) - v.begin();//最大值下标
int minPosition = min_element(v.begin(),v.end()) - v.begin();//最小值下标
int maxValue = *max_element(v.begin(),v.end());//最大值
int minValue = *min_element(v.begin(),v.end());//最小值
或者
vector<double> vec{1.0, 2.0, 3.0, 4.0, 5.0, 1.0, 2.0, 3.0, 4.0, 5.0};
auto biggest = max_element(begin(vec), end(vec));
//或者vector<double>::iterator biggest = max_element(begin(vec), end(vec));
cout << "Max element is " << *biggest<< " at position " << distance(begin(vec), biggest) << endl;
auto smallest = min_element(std::begin(vec), end(vec));
cout << "min element is " << *smallest<< " at position " << distance(begin(vec), smallest) << endl;