본문 바로가기

개발자/C++(Linux, Window)

[C++] STL pair 클래스(퍼옴)

반응형

🦥 Pair란?

두 객체를 하나로 묶어주는 클래스로, 쌍을 표현할 때 사용
좌표 평면에서 (x, y)를 묶어주는 것과 같을 때 사용하면 되겠다.

#include <utility>


🦥 생성자와 초기화

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

1. 선언 후 초기화

#include <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로

pair의 두 객체 중 첫 번째 원소는 first로, 두 번째 원소는 second라고 한다. 따라서, p.first는 첫 번째 원소를 반환하고, p.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)

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

 

출처 : https://velog.io/@choiiis/C-pair

반응형