使用STL的Vector时,利用函数 max_element,min_element,distance可以获取Vector中最大、最小值的值和位置索引:
#include <vector>
#include <algorithm> //vector成员函数头文件,否则没有max_element.....
#include <iostream>
int main()
{
double a[]= {1.0, 2.0, 3.0, 4.0, 5.0, 1.0, 2.0, 3.0, 4.0, 5.0};
std::vector<double> arr(a,a+10);
std::vector<double>::iterator max = std::max_element(std::begin(arr), std::end(arr));
// vector<double>::iterator max=max_element(arr.begin(),arr.end());// 或者也可以这样表示,计算max
std::cout << "Max element is " << *max<< " at position " << std::distance(std::begin(arr), max) << std::endl;
//输出值一定是带* 输出*max,表示解引用
auto min = std::min_element(std::begin(arr), std::end(arr));
std::cout << "min element is " << *min<< " at position " << std::distance(std::begin(arr), min) << std::endl;
}