algorithm_minmax

algorithm_minmax (최소·최대 쌍)

std::minmax는 주어진 값들 중 가장 작은 값과 가장 큰 값을 한 쌍으로 돌려줘요. 두 값 또는 이니셜라이저 리스트를 처리해요.

출처: cppreference

본문

std::minmax는 주어진 값들 중 가장 작은 값과 가장 큰 값을 순서대로 담은 std::pair를 반환해요. <algorithm> 헤더에 정의되어 있어요.

template< class T >
std::pair<const T&, const T&> minmax( const T& a, const T& b );

template< class T, class Compare >
std::pair<const T&, const T&> minmax( const T& a, const T& b,
                                      Compare comp );

template< class T >
std::pair<T, T> minmax( std::initializer_list<T> ilist );

template< class T, class Compare >
std::pair<T, T> minmax( std::initializer_list<T> ilist,
                        Compare comp );
  • 1,2번 오버로드ab 중 작은 값과 큰 값을 순서대로 돌려줘요.
  • 3,4번 오버로드 — 이니셜라이저 리스트 ilist의 값 중 가장 작은 값과 가장 큰 값을 돌려줘요.

두 값이 같으면 (a, a)를 돌려줘요.

복잡도 (Complexity)

이니셜라이저 리스트 오버로드는 정확히 3/2·ilist.size()번 이하의 비교가 필요해요.

예제 (Example)

#include <algorithm>
#include <iostream>

int main()
{
    auto p = std::minmax({3, 1, 4, 1, 5, 9, 2, 6});
    std::cout << "min: " << p.first << ", max: " << p.second << '\n';
}

출력:

min: 1, max: 9

더 알아보기 (Learn more)

cppreference