要查找存储在向量的最大或最小的元素,你可以使用的方法std::max_element和std::min_element分别。这些方法在<algorithm>标头中定义。如果几个元素等效于最大(最小)元素,则这些方法将迭代器返回到第一个此类元素。返回空向量。v.end()
std::vector<int> v = {5, 2, 8, 10, 9}; int maxElementIndex = std::max_element(v.begin(),v.end()) - v.begin(); int maxElement = *std::max_element(v.begin(), v.end()); int minElementIndex = std::min_element(v.begin(),v.end()) - v.begin(); int minElement = *std::min_element(v.begin(), v.end()); std::cout << "maxElementIndex:" << maxElementIndex << ", maxElement:" << maxElement << '\n'; std::cout << "minElementIndex:" << minElementIndex << ", minElement:" << minElement << '\n';
输出:
maxElementIndex:3,maxElement:10
minElementIndex:1,minElement:2
向量中的最小和最大元素可以使用方法std::minmax_element(在<algorithm>标头中也定义)同时进行检索:
std::vector<int> v = {5, 2, 8, 10, 9}; auto minmax = std::minmax_element(v.begin(), v.end()); std::cout << "最小元素: " << *minmax.first << '\n'; std::cout << "最大元素: " << *minmax.second << '\n';
输出:
最小元素:2
最大元素:10