본문 바로가기

C++ Programming/STL

Pair 클래스

1. Pair 클래스는 두 개의 값을 한 개의 단위로 관리하기 위해 제공된다.

컨테이너 클래스인 map과 multimap은 key/value 쌍이라고 불리는 원소를 다루기 위해서 pair를 사용한다.

pair를 사용하는 다른 경우는 두가지의 값을 반환하고자 하는 함수에서 사용될 수 있다.

ex)

void f(std::pair<int, const char*>);
void g(std::pair<const int, std::string>);

void foo{
     std::pair<int, const char*>p(42,"hellow");
     f(p); // 디폴트 복사 생성자 호출
     g(p); // 템플릿 버전의 복사 생성자 호출

2. make_pair() 함수
 - 타입을 명시적으로 선언하지 않고도 pair값을 생성할 수 있도록 도와주는 유용한 함수이다. 
   std::pair<int,char>(42,'@');
   std::make_pair(42,'@'); //주의할점은 암시적으로 타입을 지정하기 때문에 불안할수있다.
                                    // float를double로 착각한다던지..