[STL] multiset 정리 및 예제
[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 |