Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ STL 멀티맵(multimap) empty() 함수 완벽 정리: 사용법과 예제

이 글에서는 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)로 상수 시간에 실행되므로, 반복문이나 조건문에서 컨테이너 상태를 검사할 때 유용하게 활용할 수 있습니다.