티스토리 뷰

안녕하세요. 감자코딩에 감자 입니다. 이번에는 살펴볼것은 C++의 STL의 종류인 Pair에 대해 살펴보도록 하겠습니다.



* Pair

 

STL 컨테이너의 한 종류인 Pair은 두개의 변수를 저장할 수 있는 구조입니다.

이것을 queue 자료구조의 형태인 Pair로 사용도 할 수 있는데요, BFS 를 구현하다보니 나오는 내용이라 함께 정리하겠습니다.


1. 2차원 배열의 인덱스 

2. 이차원 좌표평면에서의 좌표

3. 정점번호와 해당 정점 번호까지의 최단거리를 묶어서 저장해야되는 경우 (BFS 미로 문제)


단독으로 pair를 사용하기 위해서는 #include <utility> 를 해주어야합니다. 하지만, Queue의 속성으로 쓰일때는 상관없다.


예)


    // pair<int,int> q;          // Pair 선언

    queue<pair<int,int>> q;

    pair <int,int> r = make_pair(1,2);

    cout << r.first;

    cout << r.second;


결과값 12가 나오는것을 확인 할 수 있습니다.



BFS에서 Queue pair가 많이 사용되는데, 그 이유는 Row, Column으로 first, second값으로 사용되기 때문에

Queue(pair<int,int>) q; 형식으로 많이 사용되게 됩니다.


    queue<pair<int,int>> q;

    q.push(pair<int,int>(cur_r,cur_c));   // 첫번째 [0][0] 인덱스 Queue Push

    



Queue를 Push 할때 같은 의미로 사용되는것들을 보겠습니다.


q.push(pair<int,int>(r,c));       == 같은의미        q.push(make_pair(r,c)) 



조금더 STL Queue Pair컨테이너에 익숙해 져야될것 같습니다.


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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 30
글 보관함