map에 대한 설명
- 노드기반으로 이루어진 균형 이진 트리 ( 어느 한 곳을 기준으로 왼쪽은 작은 것이, 오른쪽은 큰 것이 저장 )
- key와 value로 이루어져 있으며 pair의 형태로 저장된다
- key는 중복이 되지 않는다 (multimap에서는 중복을 허용한다)
- 삽입, 삭제, 탐색의 시간 복잡도는 O(logN)이다
map의 사용 방법
#include <map>
map<string, int> m; //선언
m.insert(pair<string, int>("hello", 33)); //삽입
m["hello"] = 33; //이런식으로 삽입도 가능
map의 순회방법
map<int, string>::iterator iter;
//방법1
for(iter = m.begin(); iter != m.end(); iter++)
{
cout << iter->first << ", " << iter->second << " " ;
}
//방법2
for (auto a : m)
{
cout << a.first << ", " << a.second << " ";
}
map의 함수들
m.empty( ); //맵이 비어있는지 확인하는 함수
m.size( ); //맵의 크기를 확인하는 함수
m.find(key); //맵에서 key에 해당하는 원소를 찾는 함수
m.count(key); //맵에서 key에 해당하는 원소의 갯수를 반환하는 함수
m.insert({key, value}); //맵에 pair<key,value> 를 추가하는 함수
m.erase(key); //맵에서 key에 해당하는 원소를 제거하는 함수
m.clear( ); //맵을 초기화하는 함수
참고사이트 : https://blockdmask.tistory.com/87
'Data Structure' 카테고리의 다른 글
레드블랙트리 (0) | 2021.08.09 |
---|---|
[C++] stl priority_queue와 heap (0) | 2021.06.03 |
해시(hash) (0) | 2021.01.20 |
링크드 리스트(Linked List) (0) | 2021.01.19 |
스택(stack) (0) | 2021.01.15 |