반응형
Map이란?
map은 각 노드가 key와 value로 이루어진 트리이다. 중복을 허용하지 않는게 특징이다.
그리고 map은 검색, 삽입, 삭제 등이 O(logn)인 레드블랙트리로 구성되어 있다.
map<key, value> map1;
map은 기본적으로 key를 기준으로 오름차순으로 정렬을 한다.
만약 내림차순으로 사용하고 싶다면 map<int, int, greater> map1;로 사용하면 된다.
Map 삽입
그리고 map을 삽입할 때 가장 중요한 점은 pair 객체로 넣어야 한다는 것이다.
map1.insert(pair<int, int>(1, 2));
Map 검색
map은 기본적으로 데이터를 찾을 때 iterator를 사용한다.
그래서 map의 멤버함수인 find를 사용했을 때 만약 찾는 값이 존재하면 그 값의 주소를 반환하고 그렇지 않다면 map.end()를 반환한다.
if(map1.find(1) != map1.end()){
cout << "find\n";
}
else{
cout << "not find\n";
}
반복문을 사용할때
기본적으로 데이터에 접근할 때 iterator를 사용한다고 했기 때문에 iterator를 사용해야 한다.
for(auto iter = map1.begin(); iter != map1.end(); iter++){
cout << iter->first << ' ' << iter->second << '\n';
}
operator []를 사용해도 접근이 가능하긴 하다.
// 단 key 값이 정수형이라면!!!
for(register int i = 0; i < 10; i++){
map1.insert(pair<int, int>(i, i));
}
for(register int i = 0; i < 10; i++){
cout << map1[i] << '\n';
}
Map 삭제
map.clear()를 통해 모든 값을 지울 수 있고,
map.erase(iter) iter이 가리키는 원소를 지운다.
map.erase(start, end) start부터 end까지의 원소들을 지운다.
map.erase("Wick") key값을 기준으로 삭제 할 수도 있다.
23/06/28 수정
map은 분명 쓰기 편하지만 Hash가 훨씬 쓰기 쉽고 빠르다...
반응형
'프로그래밍 언어 > C++' 카테고리의 다른 글
| C++ 연산자 우선 순위 (0) | 2025.09.21 |
|---|---|
| C++ 특정 문자 사이 값 입력받기 (0) | 2025.09.20 |
| C++ 지수 표기법 (0) | 2025.09.20 |
| C++ 소수점 출력 (0) | 2025.09.20 |
| C++ 표준 스트림 (0) | 2025.09.19 |
댓글