일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- OS
- 백준 14246번 K보다 큰 구간
- 월곡동 학원추천
- 백준 K보다 큰 구간
- 백준 2309번 일곱 난쟁이
- 백준 14246번
- 관리형 학원
- 백준 토마토
- 월곡중 학원
- 서울사대부고 학원
- C# 병합정렬
- 백준 1049번
- 백준 한국이 그리울 땐 서버에 접속하지
- 월곡역 학원
- DFS
- 백준 dfs
- C++ 문자열
- 월곡중학교 학원추천
- 백준 9375번 패션왕 신해빈
- c++ 조합
- 백준 1049번 기타줄
- 백준 10709
- C++ 9996
- 성북구 학원
- 상월곡동 학원
- 상월곡역 학원
- 고정 소수점
- 백준 패션왕 신해빈
- c++ split
- 운영체제
- Today
- Total
키베이루's diary
[C++] Map 본문
Map
Map은 고유한 key를 기반으로 key와 value 쌍으로 이루어진 컨테이너이다. (key-value)
*레드 - 블랙 트리로 구현되어있어서 삽입, 삭제, 수정, 탐색이 O(logN)의 시간복잡도를 가진다.
Map은 자료를 저장할 때 내부에서 자동으로 오름차순으로 정렬하고 고유한 key 값을 갖기 때문에 하나의 key 값에 중복된 값이 들어갈 수 없으며 대괄호 연산자 []로 해당 키로 직접 참조가 가능하다.
C++ 에서 Map 사용
#include<map>
map<key타입, value타입> 이름
#include<map>
map<string,int> mp;
*레드-블랙트리 : 균형 이진 검색 트리이며, 삽입, 삭제, 수정, 탐색에 O(logN)의 시간 복잡도가 보장된다.
insert({key,value}) : map에 key와 value를 집어 넣는다.
string str[] = {"A", "B", "C"}; // str = A B C
map<string, int> mp;
for(int i =0; i < 3; i++){
mp.insert({a[i], i + 1}); // mp
mp[a[i]] = i + 1;
}
[key] = value : []를 통해 key에 해당하는 value를 할당한다.
[key] : []를 통해 key를 기반으로 map에 있는 요소 참조 => 해당하는 요소가 없다면 0 또는 빈문자열로 할당
size() : map에 있는 요소갯수 반환
erase(key) : 해당 키에 있는 요소 지움
mp.erase("C");
mp.erase(mp.begin()+1);
mp.erase(mp.begin(), mp.end());
find(key) : map에서 해당 key를 가진 요소를 찾아 이터레이터 반환, 못 찾을 경우 해당맵의 end() 이터레이터 반환
auto a = mp.find("D");
if(it == mp.end()){ // 못찾고 mp.end()를 반환했으면
cout << "못 찾았다" << endl;
}
else{ // 찾았으면
cout << "찾았다" << endl
}
for(auto it : map) : map에 있는 요소들을 순회, key는 first, value는 second로 참조
for(auto it = mp.begin() ; it != mp.end() ;it++)
for (auto iter = m.begin() ; iter != m.end(); iter++)
{
cout << iter->first << " " << iter->second << endl;
}
cout << endl;
mp.clear() : map에 있는 요소 전부 제거
'알고리즘 > 문자열' 카테고리의 다른 글
[C++] 백준 9375번 패션왕 신해빈 (0) | 2022.12.29 |
---|---|
[C++] 백준 9996번 한국이 그리울 땐 서버에 접속하지 (0) | 2022.12.28 |
[C++] String(문자열) (0) | 2022.12.28 |
[C++] Split (0) | 2022.12.26 |