이 글에서는 C++ STL의 multimap::empty() 함수의 동작 원리, 문법, 그리고 실제 예제를 통해 자세히 알아보겠습니다.
C++ STL에서 멀티맵(Multimap)이란?
멀티맵(Multimap)은 맵(map) 컨테이너와 유사한 연관 컨테이너(associative container)입니다. 키(key)와 매핑된 값(mapped value)으로 구성된 요소를 특정 순서에 따라 저장할 수 있다는 점도 같습니다. 다만 멀티맵은 일반 맵과 달리 동일한 키를 가진 여러 요소를 저장할 수 있다는 차이점이 있습니다. 내부적으로 데이터는 항상 연관된 키를 기준으로 자동 정렬됩니다.
multimap::empty()란 무엇인가?
multimap::empty()는 C++ STL에 내장된 함수로, <map> 헤더 파일에 정의되어 있습니다. 이 함수는 해당 멀티맵 컨테이너가 비어 있는지 여부를 확인하는 데 사용됩니다.
컨테이너의 크기가 0이면 true를 반환하고, 값이 하나라도 존재하면 false를 반환합니다.
문법(Syntax)
map_name.empty();
매개변수(Parameters)
이 함수는 어떤 매개변수도 받지 않습니다.
반환값(Return Value)
멀티맵이 비어 있으면 true, 그렇지 않으면 false를 반환합니다.
입력 예시 1
multimap<char, int> newmap;
newmap.insert(make_pair('A', 10));
newmap.insert(make_pair('B', 20));
newmap.insert(make_pair('C', 30));
mymap.empty();출력 결과:
false
위 코드는 요소 3개를 삽입했으므로 컨테이너가 비어 있지 않아 false가 출력됩니다.
입력 예시 2
std::multimap<int> mymap; mymap.empty();
출력 결과:
true
아무 요소도 삽입하지 않았기 때문에 컨테이너가 비어 있어 true가 반환됩니다.
실전 예제
#include<iostream>
#include<map>
using namespace std;
int main(){
multimap<int,int> mul_1;
// 멀티맵1에 요소 삽입
mul_1.insert({1,10});
mul_1.insert({2,20});
mul_1.insert({3,30});
mul_1.insert({4,40});
mul_1.insert({5,50});
if(mul_1.empty()){
cout<<"\nMultimap is empty";
}
else{
cout<<"\nMultimap is not empty";
cout<<"\nElements in multimap1 are: "<<"\n";
for(auto i= mul_1.begin(); i!= mul_1.end(); i++){
cout<<(*i).first<<" "<< (*i).second << "\n";
}
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Multimap is not empty Elements in multimap1 are: 1 10 2 20 3 30 4 40 5 50
정리
multimap::empty() 함수는 멀티맵 컨테이너가 비어 있는지 간단하고 효율적으로 확인할 수 있는 방법을 제공합니다. 시간 복잡도는 O(1)로 상수 시간에 실행되므로, 반복문이나 조건문에서 컨테이너 상태를 검사할 때 유용하게 활용할 수 있습니다.