[STL] multimap 정리 및 예제

2019. 7. 30. 00:38 기타/C++ STL

[STL] multimap 정리 및 예제


map 컨테이너에 중복 원소(key)를 허용해야 한다면 multimap 컨테이너를 사용한다.

map은 key를 중복해서 컨테이너에 저장할 수 없지만 multimap은 여러 key를 중복해서 저장할 수 있다.


중복 key를 허용하는 multimap은 [] 연산자를 제공하지 않는다.


[기타/C++ STL] - [STL] map 정리 및 예제


 Colored By Color Scripter

#include <iostream>
#include <map>
using namespace std;

int main(){

    multimap<int, int> mm;

    mm.insert(pair<int, int>(5, 100));
    mm.insert(pair<int, int>(3, 100));
    mm.insert(pair<int, int>(8, 30));
    mm.insert(pair<int, int>(3, 40));
    mm.insert(pair<int, int>(1, 70));
    mm.insert(pair<int, int>(7, 100));
    mm.insert(pair<int, int>(8, 50));

    multimap<int, int>::iterator iter;
    for (iter = mm.begin(); iter != mm.end(); ++iter)
        cout << "(" << iter->first << "," << iter->second << ") ";
    cout << endl;

    // multimap 의 key 3 원소의 개수 찾기
    cout << "key 3의 원소의 개수는 : " << mm.count(3) << endl;

    // multimap의 key 3의 위치 찾기
    iter = mm.find(3);
    if (iter != mm.end())
        cout << "첫 번째 key 3에 매핑된 value : " << iter->second << endl;

    map<int, int>::iterator lower_iter;
    map<int, int>::iterator upper_iter;
    lower_iter = mm.lower_bound(3);
    upper_iter = mm.upper_bound(3);

    cout << "lower_iter : " << "(" << lower_iter->first << "," << lower_iter->second << ") " << endl;
    cout << "upper_iter : " << "(" << upper_iter->first << "," << upper_iter->second << ") " << endl;

    // key가 3인 요소의 범위  찾기
    pair<map<int, int>::iterator, map<int, int>::iterator> iter_pair;
    iter_pair = mm.equal_range(3);

    for (iter = iter_pair.first; iter != iter_pair.second; ++iter)
        cout << "(" << iter->first << ',' << iter->second << ") ";
    cout << endl;

    return 0;
}



결과 :

<1,70> <3,100> <3,40> <5,100> <7,100> <8,30> <8,50>

key 3의 원소의 개수는 :2

lower_iter : <3,100>

upper_iter : <5,100>

<3,100> <3,40> 



출처: https://hyeonstorage.tistory.com/330?category=614599 [개발이 하고 싶어요]

'기타 > C++ STL' 카테고리의 다른 글

[STL] map 정리 및 예제  (0) 2019.07.30
[STL] multiset 정리 및 예제  (0) 2019.07.30
[STL] set 정리 및 예제  (0) 2019.07.30
[STL] list 정리 및 예제  (0) 2019.07.30
[STL] deque 정리 및 예제  (0) 2019.07.30
[STL] vector 벡터 정리 및 예제  (0) 2019.07.30
[STL] not2 함수  (0) 2019.07.30
[STL] 역방향 반복자 (reverse_iterator)  (1) 2019.07.30