To find the largest or smallest element stored in a vector, you can use the methods [std::max_element](<http://en.cppreference.com/w/cpp/algorithm/max_element>)
and [std::min_element](<http://en.cppreference.com/w/cpp/algorithm/min_element>)
, respectively. These methods are defined in [<algorithm>](<http://en.cppreference.com/w/cpp/algorithm>)
header. If several elements are equivalent to the greatest (smallest) element, the methods return the iterator to the first such element. Return v.end()
for empty vectors.
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';
Output:
maxElementIndex:3, maxElement:10
minElementIndex:1, minElement:2
The minimum and maximum element in a vector can be retrieved at the same time by using the method [std::minmax_element](<http://en.cppreference.com/w/cpp/minmax_element>)
, which is also defined in [<algorithm>](<http://en.cppreference.com/w/cpp/algorithm>)
header:
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';
Output:
minimum element: 2
maximum element: 10