c++/STL

multimap & multiset

길자 2025. 11. 28. 12:43
반응형
중복된 키 또는 값을 저장하는 컨테이너,
레드-블랙 트리 기반이라 항상 정렬된 상태로 유지됨
  • 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