이 글에서는 C++ STL에서 multiset::empty() 함수의 동작 방식, 문법 그리고 실제 예제에 대해 자세히 알아보겠습니다.
C++ STL에서 multiset이란?
multiset은 set 컨테이너와 매우 유사한 컨테이너입니다. set처럼 값을 키(key) 형태로 저장하며, 항상 특정한 정렬 순서를 유지한다는 특징이 있습니다.
multiset에서도 set과 마찬가지로 저장된 값이 곧 키로 식별됩니다. 두 컨테이너의 가장 큰 차이점은, set은 중복 없는 고유한 키만 가질 수 있는 반면(즉, 서로 같은 키가 존재할 수 없음), multiset에는 동일한 키 값이 여러 개共存할 수 있다는 점입니다.
또한 multiset의 키 구조는 내부적으로 이진 탐색 트리(binary search tree)를 구현하는 데 활용됩니다.
multiset::empty()란 무엇인가?
multiset::empty() 함수는 C++ STL에 기본으로 포함된 내장 함수로, <set> 헤더 파일에 정의되어 있습니다.
이 함수는 해당 multiset 컨테이너가 비어 있는지 여부를 확인하는 역할을 합니다.
empty()는 연관된 컨테이너의 크기가 0이면 true를 반환하고, 컨테이너에 요소가 하나라도 존재하거나 크기가 0이 아니라면 false를 반환합니다.
문법
ms_name.empty();
매개변수
이 함수는 어떠한 매개변수도 받지 않습니다.
반환 값
컨테이너가 비어 있으면 불리언 값 true를 반환하고, 그렇지 않으면 false를 반환합니다.
예제
입력: std::multiset<int> mymultiset = {1, 2, 2, 3, 4};
mymultiset.empty();
출력: false
입력: std::multiset<int> mymultiset;
mymultiset.empty();
출력: true예제 코드 1
#include <bits/stdc++.h>
using namespace std;
int main() {
int arr[] = {2, 3, 4, 5};
multiset<int> check(arr, arr + 4);
if (check.empty())
cout <<"The multiset is empty";
else
cout << "The multiset isn't empty";
return 0;
}
실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다 −
The multiset isn't empty
예제 코드 2
#include <bits/stdc++.h>
using namespace std;
int main() {
int arr[] = {};
multiset<int> check(arr, arr + 0);
if (check.empty())
cout <<"The multiset is empty";
else
cout << "The multiset isn't empty";
return 0;
}
실행 결과
위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다 −
The multiset is empty