-
[STL] pairAlgorithm/C++ 2019. 11. 12. 19:00
pair는 두 개의 자료형을 하나로 묶어서 사용할 수 있게 해준다.
첫 번째 변수를 first, 두 번째 변수를 second라 한다.
pair는 2차원 배열의 인덱스나 좌표를 사용할 때, 두 정점 사이의 최단거리를 묶어서 저장해야할 때 사용한다.
1. 사용법
123456789#include <utility>pair<int, char> p[10];p[1] = make_pair(10, 'c');cout << p[1].first << " " << p[1].second << endl; //10, cp[1].first = 14141;p[1].second = 'd';cout << p[1].first << " " << p[1].second << endl; //14141, d- pair에 데이터 한 쌍을 추가할 때에는 make_pair 함수를 사용한다.
- 데이터쌍의 한 부분만 수정하고 싶으면 pair의 first 또는 second 변수로 접근하면 된다.
- pair는 vector나 배열로도 사용할 수 있다.
first와 second가 같은 pair을 2개 만들 경우, 같은 pair로 인식한다.
1cout << (make_pair(1, 1) == make_pair(1, 1)) << "\n"; // 12. 예제
123456789101112131415161718192021#include <iostream>using namespace std;#include <vector>#include <utility>int n = 20;vector<pair<int, int>> vec;int main(){int i, a = 1, b = 1, c;for (i = 1; i <= n; ++i){vec.push_back(make_pair(a, b));vec.emplace_back(a, b);c = a + b;a = b;b = c;}for (i = 0; i < vec.size(); ++i) cout << vec[i].first << " " << vec[i].second << endl;return 0;}위 코드는 pair를 vector로 사용하는 예제이다.
pair을 vector로 생성하는 방법은 2가지가 있는데
하나는 push_back과 make_pair 두 함수를 사용하는 것이고,
다른 하나는 emplace_back 함수를 사용하는 것이다.
emplace_back을 사용하면 튜플을 한꺼번에 처리할 수 있기 때문에 더 효율적이다.
실행 결과
[참고 문헌]
'Algorithm > C++' 카테고리의 다른 글
[백준][C++] 5052. 전화번호 목록 (0) 2020.10.02 [STL] vector (0) 2019.11.05 [STL] iostream, std, 입출력(cin, cout) (0) 2019.11.05