[STL] Unordered_map, multimap 생성, 삽입, 삭제 등 사용법
Notepad96
·2020. 11. 8. 10:59
300x250
1. unordered_map, _multimap
unordered_map은 set과 unordered_set의 관계처럼 저장하는 원소들을 어느 정렬 방식(오름차순, 내림차순)에 따라 정렬이 되는 것이 아니라 일련의 삽입하는 순서를 유지하고자 할 때 사용할 수 있다.
그 외에 멤버 함수나 사용방법 들은 map과 multimap 동일하다.
unordered_map과 unordered_multimap을 사용하기 위해서는 unordered_map을 include 하여야만 한다.
2. 코 드
환경 : Visual Studio 2019
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
int main() {
unordered_map<int, string> umap;
unordered_multimap<int, string> ummap;
umap[4] = "a";
umap[3] = "b";
umap[1] = "c";
umap[2] = "d";
umap[5] = "e";
umap[1] = "f";
for (auto i : umap) {
cout << i.first << ":" << i.second << " ";
}
cout << "\n";
ummap.insert(make_pair(4, "a"));
ummap.insert(make_pair(3, "b"));
ummap.insert(make_pair(1, "c"));
ummap.insert(make_pair(2, "d"));
ummap.insert(make_pair(5, "e"));
ummap.insert(make_pair(1, "f"));
for (auto i : ummap) {
cout << i.first << ":" << i.second << " ";
}
cout << "\n";
// key가 1인 원소들만 루프
for (auto it = ummap.lower_bound(1); it != ummap.upper_bound(1); it++) {
cout << it->first << ":" << it->second << " ";
}
cout << "\n";
return 0;
}
- unordered_map은 map처럼 [] 연산자를 사용하여서 삽입할 수 있으며 unordered_multimap은 mutlimap처럼 [] 연산자를 사용하여서 삽입할 수 없다.
- unordered_multimap의 결과를 보면 unordered_multiset처럼 중복된 원소 삽입 시 기존의 중복되는 원소 뒤에 삽입되는 것을 확인할 수 있다.
- 특정 key를 같은 원소만 탐색하고 싶을 경우 multimap에서 사용하였던 것처럼 lower_bound, upper_bound를 사용하면 가능하다.
3. 참 조
300x250
'C++ > Container' 카테고리의 다른 글
[STL] Queue 생성, 삽입, 삭제 등 사용법 (0) | 2020.11.09 |
---|---|
[STL] Stack 생성, 삽입, 삭제 등 사용법 (0) | 2020.11.08 |
[STL] Unordered_set, multiset 생성, 삽입, 삭제 등 사용법 (1) | 2020.11.07 |
[STL] Multimap 생성, 삽입, 삭제 등 사용법 (0) | 2020.11.06 |
[STL] Map 생성, 삽입, 삭제 등 사용법 (0) | 2020.11.06 |