본 게시글은 "Competitive Programmer's Handbook"을 보며 임의로 해석하며 공부한 내용입니다.
Map structures
맵은 키-값 쌍으로 구성된 배열을 말한다.
C++ 표준 라이브러리는 2가지 맵 구현체를 포함한다.
- map 구조는 밸런스 이진 트리 기반으로, 원소 접근 시간은 O(logn)이다.
- unorderd_map 구조는 해싱을 사용하며, 원소 접근 시간은 평균 O(1)이다.
1. map 함수 선언 (키 : string, 값 : integers)
map<string, int> m;
m["monkety"] = 4;
m["banana"] = 3;
m["harpsichord"] = 9;
cout << m["banana"] << endl; // 3
2. Key에 대한 값을 요청했지만, map에 존재하지 않는다면, Key는 자동적으로 map에 기본값을 추가된다.
- 아래 코드에서 값이 0인 키 "aybabtu"가 map에 추가된다.
map<string, int> m;
cout << m["aybabtu"] << endl; // 0
3. count 함수 : map에 key가 존재하는 지 확인한다.
if (m.count("aybabtu")) {
// key exists
}
4. 모든 키-값 프린트하기
for(auto x : m) {
cout << x.first << " " << x.second << endl;
}
728x90
반응형
'알고리즘' 카테고리의 다른 글
[C++] 완전 탐색(1) - 부분 집합 구하기 (0) | 2021.06.24 |
---|---|
[BOJ/백준] 2231번 - 분해합 (0) | 2021.06.23 |
[BOJ/백준] 2798번 - 블랙잭 (0) | 2021.06.21 |
[C++] 데이터 구조(2) - Set structures (0) | 2021.06.19 |
[C++] 데이터 구조(1) - Dynamic arrays(vector, string) (0) | 2021.06.12 |