관리 메뉴

Kim's Programming

Map - 맴버변수 본문

STL - Container/Container - Map

Map - 맴버변수

Programmer. 2016. 2. 1. 06:32

Map은 이진탐색트리형태의 자료구조형입니다. Map은 key값을 통해 정렬을 하고 key와 함께 값을 저장합니다.


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
77
78
79
#include<iostream>
#include<string>
#include<map>
class CompareClass
{
public:
    bool operator () (const int& left ,const int& right)
    {
        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::map<int, std::string> Target_Map)
{
    for (std::map<int, std::string>::iterator IterPos = Target_Map.begin(); IterPos != Target_Map.end(); ++IterPos)
        std::cout << "Key->" << IterPos->first << ", Value->" << IterPos->second << "   ";
    std::cout << std::endl;
}
void print(std::map<int,std::string,CompareClass> Target_Map)
{
    for (std::map<int, std::string>::iterator IterPos = Target_Map.begin(); IterPos != Target_Map.end(); ++IterPos)
        std::cout << "Key->" << IterPos->first << ", Value->" << IterPos->second << "   ";
    std::cout << std::endl;
}
void print(std::map<int, std::string, bool(*)(intint)> Target_Map)
{
    for (std::map<int, std::string>::iterator IterPos = Target_Map.begin(); IterPos != Target_Map.end(); ++IterPos)
        std::cout << "Key->" << IterPos->first << ", Value->" << IterPos->second << "   ";
    std::cout << std::endl;
}
 
void main()
{
    std::map<int, std::string> Map1;
    Map1[1= "First";
    Map1[2= "Second";
    Map1[3= "Third";
    Map1[4= "Fourth";
    
    std::map<int, std::string> Map2(Map1.begin(), Map1.end());
    std::map<int, std::string> Map3(Map2); 
    std::map<int, std::string, CompareClass> Map4;
    bool(*functionPtr)(intint= Compare;
    std::map<int, std::string, bool(*)(intint)> Map5(functionPtr);
 
    print(Map1);
    print(Map2);
    print(Map3);
    print(Map4);
    print(Map5);
 
    std::map<int, std::string>::key_type;
    std::map<int, std::string>::mapped_type;
    std::map<int, std::string>::value_type;
    std::map<int, std::string>::value_compare;
    std::map<int, std::string>::key_compare;
    std::map<int, std::string>::allocator_type;
    std::map<int, std::string>::reference;
    std::map<int, std::string>::const_reference;
    std::map<int, std::string>::pointer;
    std::map<int, std::string>::const_pointer;
    std::map<int, std::string>::iterator;
    std::map<int, std::string>::const_iterator;
    std::map<int, std::string>::reverse_iterator;
    std::map<int, std::string>::const_reverse_iterator;
    std::map<int, std::string>::difference_type;
    std::map<int, std::string>::size_type;
}
cs




Map은 다음과 같이 선언합니다.


    • Map은 45,51,52,53,55줄과 같은 방법으로 선언할 수 있습니다.

      1. 일반적으로 선언하는 방법입니다.(45줄)

      2. 선언후 이터레이터를 이용하여 그 사이에 있는 데이터들을 이용하여 초기화합니다.(51줄)

      3. 선언후 다른 map을 이용하여 초기화합니다.(52줄)

      4. 비교용 클래스를 이용하여 map 정렬 알고리즘을 정하여 선언합니다.(53줄)

      5. 비교용 함수를 이용하여 map 정렬 알고리즘을 정하여 선언합니다. (55줄)


    • Map은 다음과 같은 멤버변수가 있습니다.


       멤버이름 

       내용

       비고

       key_type

       템플릿 첫 번째 파라메터

       

       mapped_type

       템플릿 두 번째 파라메터

       

       value_type

       pair 형의 value_type

       

       key_compare

       템플릿 세 번쨰 파라메터

       

       value_compare

       요소 비교를 위한 중첩함수

       

       allocator_type

       템플릿 네 번째 파라메터

       

       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_iterartor

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

       

       const_reverse_iterator

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

       

       difference_type

       signed integral 형, 이터레이터 차이 구분

       

       size_type

       unsigned integral 형, 사이즈 대입

       



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

Map - Clear()  (0) 2016.02.01
Map - cend()  (0) 2016.02.01
Map - cbegin()  (0) 2016.02.01
Map - begin()  (0) 2016.02.01
Map - at()  (0) 2016.02.01