728x90
Map
- <key, value> pair를 관리하기 위한 data structure
- set과 마찬가지로 c++에서는 red-black tree로 map library를 구현하기에 searching 과 update 모두 O(log n)시간 에 수행 가능하다.
- Map에서 각 key는 반드시 unique해야하며 C++에서는 중복된 key값을 허용하는 multimap library를 따로 지원한다.
- unordered_set과 마찬가지로 c++에서는 hash table로 구현 된 unordered_map library 또한 지원한다.
# example
map<string,int> m;
m["monkey"] =4;
m["banana"] =3;
cout<< m["banana"] << '\n' // 3
key "banana"에 대응되는 value를 출력한다.
# Map에서 존재하지 않는 key에 접근하는 경우
map<string,int> m;
cout<<m["adasd"] << '\n';
=> <new key,0>을 자동으로 map에 추가한다.
# Map 에 key가 존재하는 지 확인
# count | find
if(m.count("sdfs")){
//exists
}
# Map에 저장된 모든 key와 대응하는 value 출력
for( auto x :m ){
cout<<x.first<<" "<<x.second<<'\n';
}
728x90
'🐣 알고리즘 삐약 > ✌️알고리즘 개념 잡기' 카테고리의 다른 글
[Union-Find] Union-Find | C++ (0) | 2022.04.20 |
---|---|
[queue] Priority Queue (0) | 2022.04.20 |
[Set] Set 집합 | C++ (0) | 2022.04.20 |
[Linear Data Structures] Stack / Queue (0) | 2022.04.20 |
[Linear Data Structures] Deque (3) | 2022.04.20 |