관리 메뉴

Kim's Programming

Set - 멤버변수 본문

STL - Container/Container - Set

Set - 멤버변수

Programmer. 2016. 1. 31. 21:50

Set은 이진탐색트리형태의 자료구조입니다. 그렇기 때문에 탐색속도가 매우 빠른것이 특징입니다.


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<set>
#include<iostream>
 
class CompareClass
{
public:
    bool operator()(const int& left, const int& right)const
    {
        if (left > right)
            return true;
        else
            return false;
    }
};
bool compare(int left, int right)
{
    if (left < right)
        return true;
    else
        return false;
}
void print(std::set<int> Target_Set)
{
    for (std::set<int>::iterator IterPos = Target_Set.begin(); IterPos != Target_Set.end(); ++IterPos)
        std::cout << *IterPos << " ";
    std::cout << std::endl;
}
void print(std::set<int,CompareClass> Target_Set)
{
    for (std::set<int>::iterator IterPos = Target_Set.begin(); IterPos != Target_Set.end(); ++IterPos)
        std::cout << *IterPos << " ";
    std::cout << std::endl;
}
void print(std::set<int,bool(*)(int,int)> Target_Set)
{
    for (std::set<int>::iterator IterPos = Target_Set.begin(); IterPos != Target_Set.end(); ++IterPos)
        std::cout << *IterPos << " ";
    std::cout << std::endl;
}
void main()
{
    int Array[] = { 1,3,5,7,9,11 };
    std::set<int> Set1;
    std::set<int> Set2(Array, Array + 3);
    std::set<int> Set3(Set2);
    std::set<int> Set4(++Set3.begin(), --Set3.end());
    std::set<int, CompareClass> Set5 = { 1,3,5,7,};
    bool(*compare_pointer)(intint= compare;
    std::set<intbool(*)(intint)> Set6(compare_pointer);
    Set6.insert(3);
    Set6.insert(5);
    Set6.insert(1);
    Set6.insert(2);
    print(Set1);
    print(Set2);
    print(Set3);
    print(Set4);
    print(Set5);
    print(Set6);
 
    std::set<int>::key_type;
    std::set<int>::value_type;
    std::set<int>::key_compare;
    std::set<int>::value_compare;
    std::set<int>::allocator_type;
    std::set<int>::reference;
    std::set<int>::const_reference;
    std::set<int>::pointer;
    std::set<int>::const_pointer;
    std::set<int>::iterator;
    std::set<int>::const_iterator;
    std::set<int>::reverse_iterator;
    std::set<int>::const_reverse_iterator;
    std::set<int>::difference_type;
    std::set<int>::size_type;
}
cs





set은 다음과 같은 방법으로 선언합니다.


    • set은 다음과 같이 선언하게됩니다.(43,44,45,46,47,49줄)

      1. 기본적으로 선언하는 형태입니다.(43줄)

      2. 배열의 포인터 두개를 이용하여 그 사이의 데이터들을 이용하여 초기화 합니다.(44줄)

      3. 생성후 다른 set을 이용하여 초기화를 합니다.(45줄)

      4. 생성후 다른 이터레이터 2개를 이용하여 초기화를 합니다.(46줄)

      5. 이진탐색트리에서 탐색하며 삽입할떄 사용하는 비교 기준을 Class를 이용하여 비교합니다.(47줄)

      6. 이진탐색트리에서 탐색하여 삽입할때 사용하는 비교 기준을 함수를 이용하여 비교합니다. (49줄)

    • deque의 멤버변수는 다음과 같습니다.


       멤버이름

       내용

       비고

       key_type

       템플릿 첫 번째 파라메터

       값

       value_type

       템플릿 첫 번째 파라메터

       값

       key_compare

       템플릿 두 번째 파라메터

       비교

       value_compare

       템플릿 두 번째 파라메터

       비교

       allocator_type

       펨플릿 세 번째 파라메터

       alloc

       reference

       value_type&

       

       const_reference

       const value_type&

       

       pointer

       value_type*

       

       const_pointer

       const value_type*

       

       iterator

       value_type에 대한 양방향 접근반복자

       

       const_iterator

       value_type에 대한 const 양방향 접근반복자

       

       reverse_iterator

       value_type에 대한 역 양방향 접근반복자

       

       const_reverse_iterator

       value_type에 대한 const 역 양방향 접근반복자

       

       difference_type

       두 이터레이터의 차이

       

       size_type

       unsgined integral

       




'STL - Container > Container - Set' 카테고리의 다른 글

Set - clear()  (0) 2016.01.31
Set - emplace()  (0) 2016.01.31
Set - cend()  (0) 2016.01.31
Set - cbegin()  (0) 2016.01.31
Set - begin()  (0) 2016.01.31