C++ 查找向量中的最大和最小元素以及相应的索引

示例

要查找存储在向量的最大或最小的元素,你可以使用的方法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

C ++ 11

向量中的最小和最大元素可以使用方法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