max, min, minmax
max(), min(), minmax() 는 algorithm 라이브러리에 구현되어 있다.
max와 min은 최대, 최소를 2개 이상({a,b,c,d,e})의 값과 비교하여 구하고,
minmax는 최대, 최소를 한번에 구한다.
#include <algorithm>
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int a = 1, b = 10, c = 100, d = 777;
int MAX = max(a, b); // 10
int MIN = min(a, b); // 1
int MAX2 = max({ a, b, c, d }); // 777
pair<int, int> MINMAX = minmax({ a, b, c, d }); // 1, 777
return 0;
}
max_element, min_element
만약 비교해야할 값이 배열, 벡터, 리스트처럼 많다면 어떻게 해야할까?
바로 max_element(), min_element()를 사용하면 된다.
1. max_element(start, end) => 최댓값의 iterator을 반환
2. max_element(start, end) => 최댓값의 value을 반환
3. min_element(start, end) => 최솟값의 iterator을 반환
4. min_element(start, end) => 최솟값의 value을 반환
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
array<int, 5> ar = { 1, 2, 3, 4, 5 };
vector<int> v = { -1, -2, -3, -4, -5 };
list<int> li = { 100, -100, 200, -200, 300 };
// 최댓값 value
cout << *max_element(ar.begin(), ar.end()) << '\n';
cout << *max_element(v.begin(), v.end()) << '\n';
cout << *max_element(li.begin(), li.end()) << '\n';
// 최솟값 value
cout << *min_element(ar.begin(), ar.end()) << '\n';
cout << *min_element(v.begin(), v.end()) << '\n';
cout << *min_element(li.begin(), li.end()) << '\n';
return 0;
}
오 max 여러개는 저렇게 구현하는군요!
pair도 자주 보이던데 찾아봐야겠어요