경험의 기록

Map과 Hash Map(unordered_map) 차이 (STL)

맵과 해시맵은 key와 value를 pair 형태로 가진다는 점은 같으나 

맵은 자동으로 정렬( key를 기준으로 정렬하며 오름차순으로 정렬)을 해주며 해시맵은 정렬하지 않은 채 해시테이블을 통해 자료를 넣는다는 차이가 있다.

 

Map

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <map>
using namespace std;
 
int main() {
 
    map<intstring> m; // int형 키와 string 밸류를 가지는 맵 생성
 
    m.insert(make_pair(2,"a")); // make_pair 을 활용하여 자료 추가
    m.insert(make_pair(1"b"));
    m.insert(make_pair(3"c"));
    m.insert(make_pair(4"d"));
    m.insert(make_pair(5"e"));
 
    map<intstring>::iterator iter;
 
    for (iter = m.begin(); iter != m.end(); iter++) {
        cout << "[" << iter->first << ", " << iter->second << "]" << " ";
    } // 반복자를 활용하여 접근
 
    return 0;
}
cs

자동으로 정렬된 것을 알 수 있다.

 

Hash_Map(unordered_map)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <unordered_map>
using namespace std;
 
int main() {
 
    unordered_map<intstring> m; // int형 키와 string 밸류를 가지는 해시맵 생성
 
    m.insert(make_pair(2,"a")); // make_pair 을 활용하여 자료 추가
    m.insert(make_pair(1"b"));
    m.insert(make_pair(3"c"));
    m.insert(make_pair(4"d"));
    m.insert(make_pair(5"e"));
 
    unordered_map<intstring>::iterator iter;
 
    for (iter = m.begin(); iter != m.end(); iter++) {
        cout << "[" << iter->first << ", " << iter->second << "]" << " ";
    } // 반복자를 활용하여 접근
 
    return 0;
}
cs

정렬되지 않은 것을 확인 할 수 있다.

 

반응형

공유하기

facebook twitter kakaoTalk kakaostory naver band
loading