Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- html
- 자료구조
- map
- 시스템프로그래밍
- arduino compiler
- directx
- 컴퓨터 그래픽스
- Array
- 아두이노 컴파일러
- C언어
- 수광 소자
- list
- 운영체제
- c++
- 라인트레이서
- queue
- stl
- 아두이노 소스
- 아두이노
- Visual Micro
- Arduino
- LineTracer
- Deque
- vector
- Algorithm
- WinAPI
- priority_queue
- 통계학
- Stack
- set
Archives
- Today
- Total
Kim's Programming
STL(Standard Template Library) - Container - Priority Queue 본문
STL - Container
STL(Standard Template Library) - Container - Priority Queue
Programmer. 2016. 1. 28. 01:15우선순위 큐라는 자료구조는 큐에 삽입되는 데이터가 위(Top)에서부터 우선순위순(내림차순)으로 정렬되며 그러므로 우선순위 큐라고 부릅니다.
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 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | #include<queue> #include<iostream> void print(std::priority_queue<int> Target_Queue) { while (!Target_Queue.empty()) { std::cout << Target_Queue.top() << " "; Target_Queue.pop(); } std::cout << std::endl; } void main() { std::priority_queue<int> PriorityQueue; std::priority_queue<int> PriorityQueue_Copy; //if Priority_qux`eue is empty, empty() function return true if (PriorityQueue.empty()) std::cout << "Priority_Queue is empty" << std::endl; //push(x) function write x in ascending power in the Priority Queue std::cout << std::endl<<"push(x)" << std::endl; PriorityQueue.push(3); PriorityQueue.push(5); PriorityQueue.push(7); PriorityQueue.push(10); PriorityQueue.push(13); PriorityQueue.push(2); print(PriorityQueue); //pop() function remove data that is the biggest data std::cout << std::endl << "pop()" << std::endl; std::cout << "Previous -> "; print(PriorityQueue); PriorityQueue.pop(); std::cout << "After -> "; print(PriorityQueue); //size() function display PriorityQueue's Size std::cout << std::endl << "size()" << std::endl; std::cout << "PriorityQueue's Size -> "<< PriorityQueue.size()<<std::endl; //top() function return data that is the biggest data std::cout << std::endl << "top()" << std::endl; std::cout <<"Top() -> " <<PriorityQueue.top() << std::endl; //operator '=' ("x2 = x1") copy x1 to x2, Previous data will be deleted std::cout << std::endl << "Operator '='" << std::endl; std::cout << "PriorityQueue Previous -> "; print(PriorityQueue); std::cout << "PriorityQueue_Copy Previous -> "; print(PriorityQueue_Copy); PriorityQueue_Copy = PriorityQueue; std::cout << "PriorityQueue After -> "; print(PriorityQueue); std::cout << "PriorityQueue_Copy After -> "; print(PriorityQueue_Copy); //emplace(x) function write x in ascending power in the Priority Queue std::cout << std::endl << "emplace(x)" << std::endl; PriorityQueue.emplace(3); print(PriorityQueue); PriorityQueue.emplace(12); print(PriorityQueue); //x1.swap(x2) function swap x1 and x2 std::cout << std::endl << "swap()" << std::endl; std::cout << "PriorityQueue Previous -> "; print(PriorityQueue); std::cout << "PriorityQueue_Copy Previous -> "; print(PriorityQueue_Copy); PriorityQueue.swap(PriorityQueue_Copy); std::cout << "PriorityQueue After -> "; print(PriorityQueue); std::cout << "PriorityQueue_Copy After -> "; print(PriorityQueue_Copy); //if PriorityQueue is empty, return true std::cout << std::endl << "swap()" << std::endl; if (PriorityQueue.empty()) std::cout << "empty" << std::endl; else std::cout << "Not Empty" << std::endl; } | cs |
각 함수들의 기능을 알아보겠습니다.(함수 이름을 클릭하면 상세설명으로 이동합니다)
- push(x)
우선순위 큐에 x값을 집어 넣습니다. 삽입과 동시에 정렬이 됩니다. - pop()
가장 큰 데이터(즉 가장 위에 있는 데이터)를 삭제합니다. - size()
우선순위 큐의 크기를 리턴합니다. - top()
가장 큰 데이터(즉 가장 위에 있는 데이터)를 리턴합니다. - operator '='
a=b 일때 우선순위 큐 b의 데이터를 우선순위 큐 a로 모두 복사하며 a의 기존 데이터는 모두 삭제됩니다. - emplace(x)
우선순위 큐에 데이터를 삽입합니다. 물론 삽입과 동시에 정렬이 됩니다. - swap()
x.swap(y) 우선순위 큐 x와 우선순위 큐 y의 데이터를 이름빼고 전부 교체합니다. - empty()
비어있을 경우 true를 리턴합니다.
'STL - Container' 카테고리의 다른 글
STL(Standard Template Library) - Container - Map (0) | 2016.01.28 |
---|---|
STL(Standard Template Library) - Container - Set (0) | 2016.01.28 |
STL(Standard Template Library) - Container - Deque (0) | 2016.01.27 |
STL(Standard Template Library) - Container - Queue (0) | 2016.01.27 |
STL(Standard Template Library) - Container - Stack (0) | 2016.01.27 |