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

minmax를 각각 부르는 것보다 효율적일 수 있어요(한 번에 처리). 최소와 최대가 모두 필요할 때 구조적 바인딩과 함께 자주 써요.

더 알아보기 (Learn more)

cppreference