Some Practices/바킹독 실전 알고리즘 강좌 수강

Pair STL

mitdog 2024. 7. 22. 21:17

서로 다른 2개의 연관된 데이터를 하나의 데이터로 묶어서 관리할 수 있게 해주는 STL.

data1 data2

한 pair가 저렇게 생겼다.
다양한 방면에서 사용할 수 있다. 대표적으론 다음과 같다.

  • 인덱스와 그 인덱스에 해당하는 데이터를 따로 저장해야 할 경우
  • 좌표를 저장해야 할 경우
  • 키 값과, 비교해야하는 값(우선순위가 있는 값) 쌍일 경우 등

사용 방법

헤더 파일

<utility>라는 헤더 파일에 있는데, 사실 이 헤더 파일은 <vector> 혹은, <algorithm> 에 포함되어 있다.

#include <utility>
#include <vector>
#include <algorithm>

3 가지 헤더 파일 중 하나라도 있으면 사용이 가능하다.

선언
pair<type1, type2> p;

type1, type2에는 저장할 데이터의 자료형을 적어주면 된다.
둘이 같아도 무방하다.

메소드

p는 pair 변수라 가정한다.

  • p.first // 첫 번째 페이 데이터에 접근
  • p.second // 두 번째 페어 데이터에 접근
  • make_pair
활용 예

pair는 다른 STL들이나, 인자 등으로 활용이 가능하다.

queue<pair<int, int>> Q;
...
Q.push({0, 0});
...
pair<int, int> cur = Q.front();
int compare(pair<int, int> n1, pair<int, int> n2) {
...
}

'Some Practices > 바킹독 실전 알고리즘 강좌 수강' 카테고리의 다른 글

Deque STL  (0) 2024.07.18
Queue STL  (0) 2024.07.17
Stack STL  (0) 2024.07.17
List STL  (0) 2024.07.11
실수 자료형의 주의점  (0) 2024.07.11