본문 바로가기

C

c++ map 사용 방법

map은 Key value 관계로 데이터를 저장한다.

set과 마찬가지로 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
#include <iostream>
#include <map>
#include <string>
 
 
int main()
{
    std::map<intint> numPairs;
    numPairs.emplace(2102);
    numPairs.emplace(3103);
    numPairs.emplace(4104);
    numPairs.emplace(5105);
    // 1이 중복이라 추가 안 됨;
    numPairs.emplace(1200);
    numPairs.emplace(11000);
 
    // Value overwriting
    numPairs[1= 300;
 
    std::cout << numPairs[6]; // 키값이 없으면 default 값 배정함
 
 
    for (const auto& numPair : numPairs)
    {
        std::cout << numPair.first << " "
            << numPair.second << std::endl;
    }
    // int, string도 가능
    std::map<intstd::string> nameList;
    nameList.emplace(1"woonggon");
    nameList.emplace(2"hyosick");
    nameList.emplace(3"emperor");
 
    for (const auto& name : nameList)
    {
        std::cout << name.first << " "
            << name.second << std::endl;
    }
 
    // comparison operatior 지정
    std::map<std::stringint> reverse_nameList;
    reverse_nameList.emplace("woonggon",1);
    reverse_nameList.emplace("hyosick",2);
    reverse_nameList.emplace("emperor",3);
 
    for (const auto& name : reverse_nameList)
    {
        std::cout << name.first << " "
            << name.second << std::endl;
    }
    return 0;
}