본문 바로가기

알고리즘을 위한 간략 정리/자료형

[C++] 페어(PAIR)

핵심요약

  • 한 공간에 2개의 값을 저장할 수 있게 해주는 클래스
  • 2개의 값이 묶여서 이동하면 좋겠다고 생각할 때 사용하면 좋다.

 

헤더파일

#include  <utility> //1번 방법
#include  <vector> //2번 방법, vector 헤더파일 안에 유틸리티가 들어있다.

pair<자료형, 자료형> 변수명;

 

데이터 생성 및 참조

pair<int, int> p;

p = make_pair(data1, data2); // 첫 번째 방법
p = {data1, data2}; // 두 번째 방법

p.first //첫 번째 data값 = data1
p.second //두 번째 data값  = data2

 

정렬 관련 tip

#include <algorithm> //STL의 sort함수를 사용하기 위해

//first값을 기준으로 할 때
sort(vec.begin(), vec.end()); //vec이라는 자료구조의 정렬

//second값을 기준으로 할 때, 이 밖에도 cmp 함수를 수정하면 자신만의 방식으로 정렬이 가능하다.
bool cmp(pair<int, int> &a, pair<int, int> &b){
    return a.second < b.second;
}
sort(vec.begind(), vec.end(), cmp); //vec이라는 자료구조를 cmp라는 비교함수에 따라 정렬