티스토리 뷰
안녕하세요. 감자코딩에 감자 입니다. 이번에는 살펴볼것은 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컨테이너에 익숙해 져야될것 같습니다.
'Algorithm' 카테고리의 다른 글
[알고리즘] 백준알고리즘 7576 토마토 익히기 BFS (0) | 2018.07.30 |
---|---|
[알고리즘] 백준알고리즘 1697 숨바꼭질 BFS (0) | 2018.07.30 |
[알고리즘] 백준알고리즘 2178 미로 BFS (0) | 2018.07.30 |
[알고리즘] C++ STL Vector에 대해 알아보자 (0) | 2018.07.29 |
[알고리즘] BFS(Breadth First Search) 너비우선탐색 알고리즘 (0) | 2018.07.28 |
- Total
- Today
- Yesterday
- programming
- 백준
- 프로그래밍
- Algorigm
- Android
- 리버싱
- 감자코딩
- 개발하는 관광이
- 학교
- 백준알고리즘
- 알고리즘
- 안드로이드
- BFS
- db
- 텐서플로우
- TensorFlow
- 머신러닝
- node.js
- Spring
- C언어
- C langauge
- 노드
- 복습
- 스프링
- Controller
- 초보자를 위한 C언어 300제
- node
- MVC
- 코드엔진
- 감자개발자
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |