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
- Visual Micro
- 자료구조
- Algorithm
- directx
- Array
- WinAPI
- c++
- priority_queue
- 아두이노
- 운영체제
- html
- 컴퓨터 그래픽스
- 라인트레이서
- 통계학
- LineTracer
- list
- vector
- map
- Deque
- stl
- arduino compiler
- Stack
- Arduino
- 시스템프로그래밍
- 수광 소자
- set
- C언어
- 아두이노 소스
- queue
- 아두이노 컴파일러
Archives
- Today
- Total
Kim's Programming
Priority Queue - 멤버변수 본문
Priority Queue는 특정 우선 순위에 따라서 삽입시에 정렬하며 정렬된 순서에 따라 출력을 하는 자표구조입니다.
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 | #include<queue> #include<vector> #include<iostream> #include<functional> class mycomparison { bool reverse; public: mycomparison(const bool& revparam = false) { reverse = revparam; } bool operator() (const int& lhs, const int&rhs) const { if (reverse) return (lhs>rhs); else return (lhs<rhs); } }; 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 print(std::priority_queue<int,std::vector<int>,std::greater<int>> Target_Queue) { while (!Target_Queue.empty()) { std::cout << Target_Queue.top() << " "; Target_Queue.pop(); } std::cout << std::endl; } void print(std::priority_queue<int, std::vector<int>, mycomparison> Target_Queue) { while (!Target_Queue.empty()) { std::cout << Target_Queue.top() << " "; Target_Queue.pop(); } std::cout << std::endl; } void main() { int Array[] = { 1,2,3,4 }; std::priority_queue<int> pQueue1; std::priority_queue<int> pQueue2(Array, Array + 3); std::priority_queue<int, std::vector<int>, std::greater<int>> pQueue3(Array, Array + 3); std::priority_queue<int, std::vector<int>, mycomparison> pQueue4(Array, Array + 4); print(pQueue1); print(pQueue2); print(pQueue3); print(pQueue4); std::priority_queue<int>::value_type; std::priority_queue<int>::container_type; std::priority_queue<int>::reference; std::priority_queue<int>::const_reference; std::priority_queue<int>::size_type; } | cs |
priority_queue는 다음과 같이 선언을 합니다.
- priority_queue는 54,55,56,57번줄 처럼 초기화 및 생성을 할 수 있습니다.
- 기본으로 선언합니다. (54줄)
- 배열의 시작점과 끝점 포인터를 이용하여 그 사이의 데이터를 삽입하면서 삽입합니다.(55줄)
- vector를 이용하여 생성하고 비교함수를 이용하여 정렬합니다.(56줄)
- vector를 이용하여 생성하고 비교를 위한 클래스를 통해 정렬합니다.(57줄)
- priority_queue의 멤버변수는 다음과 같습니다
멤버이름
내용
비고
value_type
템플릿의 첫 파라메터
container_type
템플릿의 두번쨰 파라메터
reference
value_type&
const_reference
const value_type&
size_type
unsigned int 형 size_t 타입
'STL - Container > Container - Priority Queue' 카테고리의 다른 글
Priority Queue - push() (0) | 2016.01.30 |
---|---|
Priority Queue - pop() (0) | 2016.01.30 |
Priority Queue - Operator '=' (0) | 2016.01.30 |
Priority Queue - empty() (0) | 2016.01.30 |
Priority Queue - emplace() (0) | 2016.01.30 |