minmax
minmax (최소·최대 쌍)
두 값(또는 목록)의 최소값과 최대값을 std::pair로 한 번에 반환하는 알고리즘이에요. <algorithm> 헤더에 있어요.
출처: cppreference
본문
minmax는 주어진 값들의 최소값과 최대값을 한 쌍으로 돌려줘요.
template< class T >
std::pair<const T&, const T&> minmax( const T& a, const T& b ); // (1)
비교기 버전과 초기화자 목록 버전도 있어요.
template< class T, class Compare >
std::pair<const T&, const T&> minmax( const T& a, const T& b, Compare comp ); // (2)
template< class T >
std::pair<T, T> minmax( std::initializer_list<T> ilist ); // (3)
- 반환 값:
{min, max}쌍. 두 값이 같으면{a, a}(첫 인자)예요.
auto [lo, hi] = std::minmax(3, 7); // lo=3, hi=7
auto p = std::minmax({5, 2, 8, 1}); // p.first=1, p.second=8
min 후 max를 각각 부르는 것보다 효율적일 수 있어요(한 번에 처리). 최소와 최대가 모두 필요할 때 구조적 바인딩과 함께 자주 써요.