在向量中查找最大和最小元素和相应索引
要查找存储在向量中的最大或最小元素,可以分别使用 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
Version >= C++ 11
可以使用方法 std::minmax_element
同时检索向量中的最小和最大元素, std::minmax_element
也在 <algorithm>
标头中定义 :
std::vector<int> v = {5, 2, 8, 10, 9};
auto minmax = std::minmax_element(v.begin(), v.end());
std::cout << "minimum element: " << *minmax.first << '\n';
std::cout << "maximum element: " << *minmax.second << '\n';
输出:
最小元素:2
最大元素:10