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

C++ STL map::empty() 함수 완벽 정리 – 개념, 문법, 예제까지 한눈에

이 글에서는 C++ STL에서 map::empty() 함수의 동작 방식, 문법 그리고 실제 활용 예제에 대해 자세히 알아보겠습니다.

C++ STL에서 맵(Map)이란?

맵(map)은 연관 컨테이너(associative container)의 일종으로, 키(key)매핑된 값(mapped value)의 조합으로 이루어진 요소들을 특정 순서대로 저장할 수 있게 해주는 자료구조입니다. 맵 컨테이너의 데이터는 내부적으로 항상 키를 기준으로 자동 정렬되며, 각 요소는 고유한 키를 통해 접근할 수 있습니다.

map::empty()란 무엇인가?

map::empty() 함수는 C++ STL의 내장 함수로, <map> 헤더 파일에 정의되어 있습니다. 이 함수는 해당 맵 컨테이너가 비어 있는지 여부를 확인하는 데 사용됩니다.

동작 방식은 매우 간단합니다. 컨테이너의 크기(size)가 0이면 true를 반환하고, 저장된 요소가 하나라도 있다면 false를 반환합니다.

문법(Syntax)

map_name.empty();

매개변수

empty() 함수는 어떠한 매개변수도 전달받지 않습니다.

반환 값

  • 맵이 비어 있는 경우 → true
  • 맵에 요소가 존재하는 경우 → false

간단한 예제

입력 1

std::map<char, int> mymap;
mymap.insert({'a', 10});
mymap.insert({'b', 20});
mymap.insert({'c', 30});
mymap.empty();

출력 1

false

맵에 세 개의 요소가 삽입되었으므로 empty()는 false를 반환합니다.

입력 2

std::map<char, int> mymap;
mymap.empty();

출력 2

true

아무 요소도 삽입되지 않은 빈 맵이므로 empty()는 true를 반환합니다.

예제 코드 1 – 요소가 있는 맵 확인하기

#include <bits/stdc++.h>
using namespace std;

int main() {
    map<int, int> TP_1;
    TP_1[1] = 10;
    TP_1[2] = 20;
    TP_1[3] = 30;
    TP_1[4] = 40;

    if(TP_1.empty()) {
        cout << "Map is NULL";
    } else {
        cout << "Map isn't NULL";
    }
    return 0;
}

출력

Map isn't NULL

TP_1 맵에는 네 개의 요소가 저장되어 있으므로, empty() 함수가 false를 반환해 else 블록이 실행됩니다.

예제 코드 2 – 빈 맵과 채워진 맵 비교하기

#include <bits/stdc++.h>
using namespace std;

int main() {
    map<int, int> TP_1;
    map<int, int> TP_2;

    TP_1[1] = 10;
    TP_1[2] = 20;
    TP_1[3] = 30;
    TP_1[4] = 40;

    if(TP_1.empty()) {
        cout << "Map_1 is NULL";
    } else {
        cout << "Map_1 isn't NULL";
    }

    if(TP_2.empty()) {
        cout << "\nMap_2 is NULL";
    } else {
        cout << "Map_2 isn't NULL";
    }
    return 0;
}

출력

Map_1 isn't NULL
Map_2 is NULL

요소가 삽입된 TP_1은 false를 반환하고, 선언만 되고 비어 있는 TP_2는 true를 반환하는 것을 확인할 수 있습니다.

정리

map::empty()는 맵 컨테이너의 상태를 빠르게 확인할 수 있는 유용한 함수입니다. 참고로 mymap.size() == 0과 동일한 결과를 제공하지만, 의도를 더 명확하게 표현할 수 있어 가독성 측면에서 권장됩니다. 반복문이나 조건문에서 맵에 데이터가 존재하는지 검사할 때 활용하면 코드의 안정성과 명확성을 높일 수 있습니다.