[STL] multimap 정리 및 예제
[STL] multimap 정리 및 예제
map 컨테이너에 중복 원소(key)를 허용해야 한다면 multimap 컨테이너를 사용한다.
map은 key를 중복해서 컨테이너에 저장할 수 없지만 multimap은 여러 key를 중복해서 저장할 수 있다.
중복 key를 허용하는 multimap은 [] 연산자를 제공하지 않는다.
[기타/C++ STL] - [STL] map 정리 및 예제
#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 |