반응형
중복된 키 또는 값을 저장하는 컨테이너,
레드-블랙 트리 기반이라 항상 정렬된 상태로 유지됨
- multimap
- 같은 키를 중복해서 저장할 수 있는 맵.
- 즉, 하나의 키 → 여러 개의 value가 들어갈 수 있다.
- 주요 함수
- insert(pair): 키-값 쌍 삽입
- erase(key): 키로 요소 제거
- find(key): 키로 요소 검색 (iterator 반환)
- equal_range(key): 동일한 키의 요소 범위를 반환
- 같은 키를 중복해서 저장할 수 있는 맵.
샘플 코드
#include <iostream>
#include <map>
using namespace std;
int main() {
multimap<int, string> mm;
mm.insert({1, "rtan"});
mm.insert({1, "goong"});
mm.insert({2, "tom"});
// 키가 1인 모든 원소 조회
auto range = mm.equal_range(1);
for (auto it = range.first; it != range.second; ++it) {
cout << it->second << " "; // rtan goong
}
cout << endl;
}
- multiset
- 동일 값(키) 중복을 허용하는 셋.
- 주요 함수
- insert(value): 요소 추가
- erase(value): 요소 제거
- find(value): 요소 검색 (iterator 반환)
샘플코드
#include <iostream>
#include <set>
int main() {
std::multiset<int> ms;
// 요소 추가
ms.insert(10);
ms.insert(20);
ms.insert(10);
// 요소 출력
for (int elem : ms) {
std::cout << elem << " ";
}
std::cout << std::endl;
}반응형
'c++ > STL' 카테고리의 다른 글
| [STL] 순열(Permutation) & nth_element (0) | 2025.12.01 |
|---|---|
| [STL] 우선순위 큐 (priority_queue) (0) | 2025.12.01 |
| unordered_map & unordered_set (0) | 2025.11.30 |
| map & set (0) | 2025.11.28 |
| STL(Standard Template Library) (0) | 2025.11.27 |