;map

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
unordered_map<string, int> umap;
umap.insert({"test1"1});
umap.emplace("test5"5);
umap["test1"= 4;  
 
for(auto element : umap){
    cout << element.first << " :: " << element.second << '\n';
}
 
auto search = umap.find("test4");
if(search != umap.end())
{
    cout << "found :" << search -> first << " " << (*search).second << '\n';
}
else
{
    cout << "not found.." << '\n';
}
 
umap["test1"]++
umap["1"]을 하게 되면 초기값은 0. 
cs

>map & unordered map

key와 value로 이루어져 있다.

STL의 map은 R-B트리로 이루어져 있어 삽입, 삭제, 검색 시에 동일한 시간복잡도 O(lgN)를 가진다.

unordered_map은 해시테이블로 이루어져 있어 탐색에 있어 O(1)의 시간복잡도를 가진다.

그러나 데이타가 작은 경우에는 map, 데이타가 큰 경우에는 unordered_map이 좋다.

데이타가 클 때 검색의 경우에는 unordered map을 사용하고 순차적인 접근에 map을 사용하는 것이 좋다.

 

 

'::public > C++' 카테고리의 다른 글

std::string  (0) 2019.07.18
<iostream>  (0) 2019.06.20
STL algorithmn  (0) 2019.06.13
STL iterator  (0) 2019.06.13
STL container  (0) 2019.06.12

+ Recent posts