관리 메뉴

Kim's Programming

Priority Queue - 멤버변수 본문

STL - Container/Container - Priority Queue

Priority Queue - 멤버변수

Programmer. 2016. 1. 30. 16:27

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,};
    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번줄 처럼 초기화 및 생성을 할 수 있습니다.

      1. 기본으로 선언합니다. (54줄)

      2. 배열의 시작점과 끝점 포인터를 이용하여 그 사이의 데이터를 삽입하면서 삽입합니다.(55줄)

      3. vector를 이용하여 생성하고 비교함수를 이용하여 정렬합니다.(56줄)

      4. 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