728x90
pair 사용하기
좌표와 같이 x,y 로 쌍으로 이루어져서 표현해야하는 경우가 많다. 이미 STL에서 쌍으로 되는 데이터를 편하게 사용하게 pair라는 것을 제공해준다. pair는 두 자료형을 묶을 수 있다. 그 특징을 보자면
1. #include <utility> 에 존재한다.
2. 두 자료형을 묶을 수 있다.
3. 첫번째를 자료형에 접근하기 위해서 first, 두번째 자료형에 접근하기 위해서 second로 접근이 가능하다.
4. make_pair(a,b) 를 이용하거나 생성자를 이용하여서 만들 수 있다.
5. pair안에 pair가 들어갈 수 있다.
위의 그림과 같은 느낌이다.
코드 예
pair에 pair 가 들어간 경우는 예를들어 pair<pair<int,int>, int> a 로 정의하면 a.first.first, a.first.second 이런식으로 접근 할 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #include <stdio.h> #include <utility> using namespace std; int main(void){ //----------------------------------- // make_pair 사용 //----------------------------------- pair<int, int> p1; p1 = make_pair(10, 20); //----------------------------------- // 생성자를 이용 //----------------------------------- pair<int, int> p2(30,40); //----------------------------------- // pair 내부에 pair 가능 //----------------------------------- pair<pair<int, int>, pair<double, double>> pp2; scanf("%d %d", &pp2.first.first, &pp2.first.second); scanf("%lf %lf", &pp2.second.first, &pp2.second.second); printf("%d %d\n", pp2.first.first, pp2.first.second); printf("%lf %lf\n", pp2.second.first, pp2.second.second); } | cs |
728x90
'Algorithm > 이론' 카테고리의 다른 글
[STL] sort 사용하기 (0) | 2016.04.05 |
---|---|
[STL] vector 사용하기 (0) | 2016.04.04 |
[조합] nCr 쉽게 구하기. (수정 20190604) (5) | 2016.04.03 |
[그래프의 표현] 인접 리스트 (0) | 2016.04.01 |
[그래프의 표현] 인접 행렬 (0) | 2016.03.31 |
댓글