하루하루 꾸준히, 인생은 되는대로

자료구조

STD::multimap

긤효중 2022. 3. 19. 17:25

https://www.geeksforgeeks.org/multimap-associative-containers-the-c-standard-template-library-stl/

 

Multimap in C++ Standard Template Library (STL) - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

-멀티맵은 map과 유사하다.(이진탐색트리) ->시간복잡도 :O(logN)

 

-기존의 map은 키값의 중복을 허용하지 않지만, 멀티맵은 키값의 중복을 허용한다.

 

-멀티맵은 map과 마찬가지로 키값을 기준으로 오름차순 정렬한다.

 

 

Some Basic Functions associated with multimap:

  • begin() – Returns an iterator to the first element in the multimap
  • end() – Returns an iterator to the theoretical element that follows last element in the multimap
  • size() – Returns the number of elements in the multimap
  • max_size() – Returns the maximum number of elements that the multimap can hold
  • empty() – Returns whether the multimap is empty
  • pair<int,int> insert(keyvalue,multimapvalue) – Adds a new element to the multimap

begin()함수는 multimap에서 첫번쨰 요소를 가르키는 이터레이터를 리턴한다.

 

end()함수는 multimap에서 마지막 요소를 가르키는 이터레이터를 리턴한다.

 

size()함수는 multimap요소의 개수를 리턴한다.

 

max_size()는 멀티맵 컨테이너가 보유할 수 있는 최대값의 개수를 리턴한다.

 

max_size()

->

 but at runtime, the size of the container may be limited to a value smaller than specified by max_size() by the amount of RAM available. It gives us an only a theoretical limit on the size of the container.

 

런타임 시의 컨테이너의 크기는 max_size()보다 작은 값으로 제한될 수 있다.

(사용 가능한 RAM의 크기에 따라 달라짐)

 

empty()함수는 multimap이 비어있는지 여부를 리턴한다.

 

pair<int,int> insert(keyvalue,multimapvalue) -> 멀티맵에 key,value값을 넣어준다.


간단한 예제 코드 ->

#include <iostream>
#include <map>
 
using namespace std;
 
int main(void){
    multimap<int,int> m;
    multimap<int,int>::iterator iter;
 
    m.insert(pair<int,int>(5,5));
    m.insert(pair<int,int>(4,4));
    m.insert(pair<int,int>(3,3));
 
    cout << "멀티맵의 크기는 = " << m.size() << '\n';
 
 
    for(iter = m.begin();iter != m.end();iter++){
        cout << "key = " << iter->first << ' ' << "value = " << iter->second;
        cout << '\n';
    }
 
 
 
}

 
출력값->
멀티맵의 크기는 = 3
key = 3 value = 3
key = 4 value = 4
key = 5 value = 5

 

(5,5),(4,4),(3,3)을 넣었는데 (3,3),(4,4)(5,5)가 나온걸 보니 key값을 기준으로 오름차순 정렬한다는 것을 알 수 있다.


'자료구조' 카테고리의 다른 글

백준 1431 시리얼번호 C++  (0) 2022.03.27
C++ Priority queue 컨테이너 사용법  (0) 2022.03.25
백준 1755 C++  (0) 2022.03.19
백준 전화번호 목록 C++  (0) 2022.03.17
백준 걸그룹 마스터 준석이 C++  (0) 2022.03.12