[STL] multiset 정리 및 예제

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

[STL] multiset 정리 및 예제


multiset 컨테이너는 중복 원소를 컨테이너에 저장할 수 있다는 것 외에는 set과 다른 것이 없다.

set 처럼 원소가 자동 정렬되는 연관 컨테이너에 노드 기반 컨테이너이다.


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



#include <iostream>
#include <set>
#include <functional>
using namespace std;

int main(){

    multiset<int> ms;
    
    multiset<int>::iterator iter;

    ms.insert(50);
    ms.insert(30);
    ms.insert(80);
    ms.insert(80);
    ms.insert(30);
    ms.insert(70);
    iter = ms.insert(10);        // 삽입된 위치를 반환한다.

    cout << "iter의 원소 : " << *iter << endl;

    for (iter = ms.begin(); iter != ms.end(); ++iter)
        cout << *iter << " ";
    cout << endl;

    cout << "30의 count() : " << ms.count(30) << endl;    // 원소 30의 갯수를 반환한다.
    
    iter = ms.find(30);                            // 원소 30의 위치를 찾는다.
    cout << "iter find(30) : " << *iter << endl;

    multiset<int>::iterator lower_iter;
    multiset<int>::iterator upper_iter;

    lower_iter = ms.lower_bound(30);            // 원소 30의 첫번째 위치
    upper_iter = ms.upper_bound(30);            // 원소 30의 마지막 위치 다음 위치
    cout << "lower_iter : " << *lower_iter << ", "
        << "upper_iter : " << *upper_iter << endl;

    pair<multiset<int>::iterator, multiset<int>::iterator> iter_pair;
    iter_pair = ms.equal_range(30);                // 원소 30의 범위

    for (iter = iter_pair.first; iter != iter_pair.second; ++iter)
        cout << *iter << " ";
    cout << endl;

    return 0;
}



결과 :

iter의 원소 : 10

10 30 30 50 70 80 80

30의 count() : 2

iter find(30) : 30

lower_iter : 30, upper_iter  : 50

30 30


multiset의 insert()는 key가 중복 저장될 수 있기 때문에 set처럼 저장 위치와 삽입 성공 여부의 bool 값을 반환하는 pair 객체가 아닌 저장된 위치만을 가리키는 반복자를 반환한다.



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

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

[STL] multimap 정리 및 예제  (0) 2019.07.30
[STL] map 정리 및 예제  (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