C++ STL에서 제공하는 unordered_multimap의 size() 함수는 해당 컨테이너에 현재 저장된 요소의 개수를 반환합니다.
size() 함수란?
unordered_multimap은 해시 테이블 기반으로 구현된 연관 컨테이너로, 중복된 키를 허용한다는 특징이 있습니다. size() 함수는 컨테이너 내부에 저장된 요소의 총 개수를 상수 시간(O(1)) 안에 반환하기 때문에 성능 부담 없이 자주 호출할 수 있는 효율적인 멤버 함수입니다.
알고리즘
Begin
빈 map 컨테이너 m을 선언한다.
reserve 함수를 호출하여 컨테이너에 적합한 bucket_count를 미리 지정한다.
map 컨테이너에 값을 삽입한다.
size() 함수를 사용하여 unordered multimap 컨테이너의 크기를 출력한다.
End
예제 코드
#include<iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
unordered_map<char, int> m; // m을 빈 map 컨테이너로 선언
m.reserve(6); // map 컨테이너의 적절한 bucket_count를 미리 지정
m.insert(pair<char, int>('b', 10)); // 값 삽입
m.insert(pair<char, int>('a', 20));
cout << "The size is: " << m.size(); // size() 함수로 컨테이너 크기 출력
return 0;
}
실행 결과
The size is :2
코드 설명
위 예제에서는 먼저 unordered_map<char, int> 타입의 빈 컨테이너 m을 선언합니다. 이후 m.reserve(6)를 호출해 재해시(rehashing)가 빈번하게 발생하지 않도록 버킷 수를 미리 확보하고, pair 객체 두 개를 삽입합니다. 최종적으로 size() 함수가 반환하는 값은 삽입된 요소의 개수인 2입니다.
참고로 위 코드는 unordered_map을 사용했지만, 중복 키를 허용하는 unordered_multimap 역시 동일한 방식으로 size() 함수를 사용할 수 있으며, 동작 결과도 같습니다.