pair
- 두 객체를 하나의 객체로 취급할 수 있게 묶어주는 클래스이다.
- STL 에서 데이터 쌍을 표현할 때 사용한다.
- utility 헤더에 존재한다.
- template <class T1, class T2> strcut pair;
- template <tpename T1, typename T2> struct pair;
- pair<type1, type2> p
- 사용할 데이터 타입을 설정해주고 그 타입의 pair를 생성한다.
- p.first : p의 첫번째 인자 반환
- p.second : p의 두번째 인자 반환
- make_piar(변수1, 변수2) : 선언한 type과 동일한 변수를 해당 type 위치에 입력해주면 pair 를 만들어준다.
- operator로 ==, !=, <, >, <=, >= 가 정의 되어있어 사용가능
- sort에 의한 정렬이 가능하다.
...
pair<int, int> prev_coord = make_pair(prev_x, prev_y);
pair<int, int> next_coord = make_pair(cur_x, cur_y);
pair<pair<int, int>, pair<int, int>> history = make_pair(prev_coord, next_coord);
if (find(memo_coord.begin(), memo_coord.end(), history) != memo_coord.end()) {
continue;
} else {
memo_coord.push_back(history);
pair<pair<int, int>, pair<int, int>> history2 = make_pair(prev_coord, next_coord);
memo_coord.push_back(history2);
answer++;
}
}
....
- 나는 이전, 다음 좌표의 짝을 만들었고, 좌표의 이동 history 를 저장하여는데에 사용했다.
출처 : https://blockdmask.tistory.com/64