Page 26 -
P. 26
Note 소스 실행 방법(검증 환경: clang/g++ 12.0, macOS 10.15.7, Visual Studio Code 1.58.2)
# clang++ -stdlib=libc++ -std=<원하는 표준 버전> <소스 파일> <결과 파일>
# clang++ -stdlib=libc++ -std=c++17 minMax.cpp minMax
std::min, std::max, std::minmax 함수의 변종을 간략히 정리하면 다음 표와 같다.
표 2-1 std::min, std::max, std::minmax 함수의 변종들
함수 설명
min(a, b) a와 b 중에서 최솟값을 리턴한다.
min(a, b, comp) 프레디케이트 comp를 이용해 a와 b 중에서 최솟값을 찾아서 리턴한다.
min(이니셜라이저_리스트) 이니셜라이저 리스트에 있는 값 중에서 최솟값을 리턴한다.
min(이니셜라이저_리스트, comp) 프레디케이트 comp를 이용해 이니셜라이저 리스트의 값 중에서 최솟
값을 구한다.
max(a, b) a와 b 중에서 최댓값을 리턴한다.
max(a, b, comp) 프레디케이트 comp를 이용해 a와 b 중에서 최댓값을 찾아서 리턴한다.
max(이니셜라이저_리스트) 이니셜라이저 리스트에 있는 값 중에서 최댓값을 리턴한다.
max(이니셜라이저_리스트, comp) 프레디케이트 comp를 이용해 이니셜라이저 리스트의 값 중에서 최댓
값을 리턴한다.
minmax(a, b) a와 b 중에서 최솟값과 최댓값을 리턴한다.
minmax(a, b, comp) 프레디케이트 comp를 이용해 a와 b 중에서 최솟값과 최댓값을 리턴
한다.
minmax(이니셜라이저_리스트) 이니셜라이저 리스트에 있는 값 중에서 최솟값과 최댓값을 리턴한다.
minmax(이니셜라이저_리스트, comp) 프레디케이트 comp를 이용해 이니셜라이저 리스트의 값 중에서 최솟
값과 최댓값을 리턴한다.
2.1.2 std::move
4
<utility>에 정의된 std::move 는 컴파일러가 리소스를 이동할 수 있게 해주는 강력한 기능이다.
즉, 소스 오브젝트에 있는 값을 새로운 오브젝트로 옮기는 이동 의미론(move semantics)을 제공
한다. 이렇게 이동한 소스는 잘 정의됐지만 구체적인 상태는 없다. 대부분 소스의 디폴트 상태가
4 http://en.cppreference.com/w/cpp/utility/move
42
c++_06.indd 42 2021-11-19 오전 9:25:44