在向量中查詢最大和最小元素和相應索引

要查詢儲存在向量中的最大或最小元素,可以分別使用 std::max_elementstd::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