Page 24 -
P. 24
유틸리티(utility)란 특정 영역에 국한되지 않고 다양한 용도로 활용할 수 있는 도구를 말한다. 이
장에서 소개하는 함수와 라이브러리가 바로 유틸리티에 해당한다. 2장에서는 임의의 값을 넣거나
새 함수를 생성해서 변수에 바인딩하는 데 사용할 수 있는 함수를 소개한다. 원하는 타입의 값을
페어(pair)나 튜플(tuple)에 저장할 수도 있고, 값에 대한 레퍼런스를 만들 수도 있다. 스마트 포인
터를 활용하면 C++로 자동 메모리 관리 기능을 구현할 수 있다. 또한, 타입 트레이트(type trait)를
이용하면 타입에 대한 정보를 알아낼 수 있다.
2.1 유용한 함수들 C++ STANDARD LIBRARY
min, max, minmax에 대한 다양한 변종 함수는 값이나 이니셜라이저 리스트에 적용할 수 있다. 이런
함수를 사용하려면 <algorithm> 헤더를 인클루드해야 한다. std::move, std::forward, std::swap
함수도 임의의 값에 대해 호출할 수 있다. 이 세 함수는 <utility> 헤더에 정의돼 있다.
2.1.1 std::min, std::max, std::minmax
1
2
3
<algorithm>에 정의된 std::min , std::max , std::minmax 함수는 값 또는 이니셜라이저 리스트
(initializer list)를 입력받아서 결과를 리턴한다. std::minmax는 결괏값을 std::pair로 리턴한다. 페
어의 첫 번째 원소가 최솟값이고, 두 번째 원소가 최댓값이다. 이 함수에 적용되는 디폴트 연산자
는 <이지만, 다른 비교 연산자를 지정할 수도 있다. 이 함수는 인수 두 개를 받고 불 타입 값 하나
를 리턴한다. 이렇게 true나 false를 리턴하는 함수를 프레디케이트(predicate)라고 부른다.
std::min, std:::max, std::minmax 함수
// minMax.cpp
…
#include <algorithm>
1 http://en.cppreference.com/w/cpp/algorithm/min
2 http://en.cppreference.com/w/cpp/algorithm/max
3 http://en.cppreference.com/w/cpp/algorithm/minmax
40
c++_06.indd 40 2021-11-19 오전 9:25:43