본문 바로가기
Algorithm/이론

[STL] pair 사용하기

by 우툴 2016. 4. 4.
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<intint> p1;
    p1 = make_pair(1020);
 
    //-----------------------------------
    //        생성자를 이용
    //-----------------------------------
    pair<intint> p2(30,40);
    
    //-----------------------------------
    //        pair 내부에 pair 가능
    //-----------------------------------
    pair<pair<intint>pair<doubledouble>> 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

댓글