[C++] pair 클래스 정리

🦥 Pair란?

template <class T1, class T2> struct pair

두 객체를 하나로 묶어주는 클래스로, 2개의 연관된 데이터를 묶어서 사용할 수 있다.
좌표 평면에서 (x, y)를 표현할 때와 같이 쌍을 표현할 때 사용한다.


🦥 생성자와 초기화

만약 int와 string을 쌍으로 하는 pair을 생성하려고 한다면,

1. 선언 후 초기화

#include <utility>  // pair 클래스는 utility 라이브러리에 포함

pair<int, string> p;
p.first = 1;
p.second = "choiiis";

2. make_pair 함수로 초기화

#include <utility>

pair<int, string> p = make_pair(1,"choiiis");

3. 그 외의 초기화 방법

#include <utility>

pair<int, string> p1(1, "choiiis");
pair<int, string> p2(a);

🦥 원소는 first, second로

pair1

pair의 두 객체 중 첫 번째 원소는 first, 두 번째 원소는 second라고 한다.

#include <utility>

pair<int, string> p(1, "choiiis");
cout << "p.first: " << p.first << endl; // 첫 번째 원소 출력
cout << "p.second: " << p.second << endl; // 두 번째 원소 출력

[실행 결과]

p.first: 1
p.second: choiiis

🦥 pair 비교 (compare)

연산자를 통해 2개의 pair를 비교할 수 있다.
pair의 첫 번째 원소끼리 먼저 비교하고, false면 두 번째 원소끼리 비교한다.
또한, sort를 통해 정렬할 때에도 같은 방법을 사용한다.

#include <utility>

pair<int, string> a(1, "choiiis");
pair<int, string> b(2, "choiiis");

cout << "a < b : " << (a < b) << endl;
cout << "a > b : " << (a > b) << endl;
cout << "a == b : " << (a == b) << endl;
cout << "a != b : " << (a != b) << endl;

[실행 결과]

a < b : 1
a > b : 0
a == b : 0
a != b : 1

Categories:

Updated:

Leave a comment