C++ STL에서 pair란 무엇인가?
이 글에서는 C++ 표준 템플릿 라이브러리(STL)의 pair에 대해 살펴보겠습니다.
pair는 <utility> 헤더 파일에 정의된 컨테이너로, 두 개의 값을 하나의 단위로 묶어 관리할 수 있게 해줍니다. 특히 두 값의 자료형이 서로 달라도 문제없이 함께 저장할 수 있다는 점이 큰 장점입니다. pair의 첫 번째 값은 first, 두 번째 값은 second라는 멤버 변수를 통해 접근합니다.
pair의 주요 특징
- 두 개의 값을 하나의 객체로 저장하고 전달할 수 있습니다.
- 각 값의 자료형이 서로 달라도 사용 가능합니다.
first와second멤버 변수로 직관적으로 값에 접근합니다.map같은 연관 컨테이너에서 key-value 쌍을 저장하는 내부 구조로 활용됩니다.
기본 사용 예제
다음 예제는 int형과 char형이라는 서로 다른 자료형의 두 값을 하나의 pair로 묶어 저장하고 출력하는 코드입니다.
#include <iostream>
#include <utility>
using namespace std;
int main() {
// pair 선언
pair<int, char> PAIR1;
// 값 할당
PAIR1.first = 100;
PAIR1.second = 'G';
// 값 출력
cout << PAIR1.first << " ";
cout << PAIR1.second << endl;
return 0;
}실행 결과
100 G
위 코드에서는 PAIR1.first에 정수 100을, PAIR1.second에 문자 'G'를 저장했습니다. 실행 결과 두 값이 공백으로 구분되어 "100 G" 형태로 출력되는 것을 확인할 수 있습니다.
make_pair로 더 간결하게 생성하기
pair는 make_pair() 함수를 사용하면 선언과 동시에 값을 지정해 더 간결하게 초기화할 수 있습니다.
auto PAIR2 = make_pair(200, 'H'); cout << PAIR2.first << " " << PAIR2.second << endl; // 200 H
이처럼 pair는 두 값을 묶어서 반환해야 하는 함수나, key와 value를 함께 다뤄야 하는 상황에서 매우 유용하게 사용됩니다.