<algorithm>ヘッダーにstdのmin_elementとmax_element関数がありこれらを使うと、範囲内の最小値・最大値を取得することができます。
配列の範囲内の最大値・最小値を取得する
配列において、最大・最小値を取得する例を書きます。
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
int a[10] = {0,1,2,3,4,5,6,7,8,9};
// 0 ~ 9までの最大値を出力 9が出力
cout << *max_element(a,a + 10);
// 2 ~ 10までの最小値を出力 2が出力
cout << *min_element(a + 2,a + 10);
}
コンテナにおいて、範囲内の最大値・最小値を取得する
例としてvectorを使用します。
vector<int>vec = {0,1,2,3,4,5,6,7,8,9};
// 0 ~ 7までの最大値を出力 7が出力
cout << *max_element(vec.begin() + 5,vec.end() - 2);
// 3 ~ 0までの最小値を出力 3が出力
cout << *min_element(vec.begin() + 3,vec.end());
範囲内の最小値・最大値を同時に取得する
stdのminmax_element関数を使えば、最大値と最小値を同時に取得することができます。
minmax_elementの返却値はpairになっており、firstに最小値がsecondに最大値が入ります。
minmax_elementは<algorithm>に定義されています。
int main(){
vector<int>vec = {0,1,2,3,4,5,6,7,8,9};
// minmaxはpairで返却される
pair<vector<int>::iterator, vector<int>::iterator> minmax;
minmax = minmax_element(vec.begin(), vec.end());
// 出力:0 9
cout << *minmax.first << " " << *minmax.second;
}