在向量中查詢最大和最小元素和相應索引
要查詢儲存在向量中的最大或最小元素,可以分別使用 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