Nagie's DevStory

[STL] 13. std::multimap 본문

Programming/STL

[STL] 13. std::multimap

Nagie 2023. 11. 26. 00:01
728x90

std::multimap은 C++ 표준 라이브러리(STL)에서 제공하는 중복된 키를 허용하는 연관 컨테이너이다.

std::map과 유사하지만, std::multimap은 한 개의 키에 여러 개의 값을 저장할 수 있으며.

<map> 헤더 파일에 정의되어 있다.

 

 

특징

 

1. 중복된 키 허용 : std::map과는 다르게 동일한 키에 대해 여러 개의 값을 저장할 수 있다.

3. 자동 정렬 : 키에 대한 자동 정렬이 기본적으로 수행된다.

4. 검색 및 삽입 연산이 빠름 : 트리 기반이기 때문에 검색 및 삽입 연산이 빠르다.

5. 반복자(iterator) 제공 : begin()과 end()를 통해 반복자를 얻을 수 있어서 반복문을 통해 접근할 수 있다.

 

 

사용법

 

#include <iostream>
#include <map>

int main() {

    std::multimap<int, std::string> myMultimap;

    // 요소 추가
    myMultimap.insert({1, "One"});
    myMultimap.insert({2, "Two"});
    myMultimap.insert(std::make_pair(1, "Uno")); // 중복된 키를 허용

    // 요소 출력 (자동으로 정렬되어 출력됨)
    for (const auto& elem : myMultimap) {

        std::cout << elem.first << ": " << elem.second << std::endl;
    }
    // 출력: 1: One 1: Uno 2: Two

    // 특정 키에 대응하는 값 검색
    int key = 1;
    
    auto range = myMultimap.equal_range(key);
    
    for (auto it = range.first; it != range.second; ++it) {
        std::cout << key << ": " << it->second << std::endl;
    }
    // 출력: 1: One 1: Uno
}

 

 

주요 멤버 함수와 기능

 

주요 멤버 함수와 기능이 std::map과 동일하기에 이전에 작성해 둔 글의 URL을 첨부한다.

 

std::map

 

[STL] 12. std::map

std::map은 C++ 표준 라이브러리에서 제공하는 키-값(Key-Value)을 쌍으로 저장하는 연관 컨테이너다. 각 키는 유일해야 하며, 키를 기반으로 값을 검색하고 관리한다. std::map도 std::set과 같이 내부적으

nagie.tistory.com

 

728x90
Comments