;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 |