English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

C++ set empty() 使用方法及示例

C++ STL Set(집합)

C ++ empty()函数的作用是:检查集合容器是否为空。如果集合容器为空(size为0),则返回true,否则返回false。

语法

bool empty() const;               // 直到 C++ 11
bool empty const noexcept;    //从 C++ 11 开始

参数

没有

返回值

它返回如果设定的容器是空的(大小为0),否则返回

复杂

不变。

迭代器有效性

没有变化。

数据争用

容器被访问。

同时访问set的元素是安全的。

异常安全

此函数永远不会引发异常。

예제1

让我们看一个简单的示例,以检查集合是否包含任何元素:

#include <set>
#include <iostream>
using namespace std;
int main()
{
    set<int> numbers;
    cout << " 最初,numbers.empty(): " << numbers.empty() << "\n";
    numbers = {100, 200, 300};
    cout << "\n요소를 추가한 후, numbers.empty(): " << numbers.empty() << "\n";
}

출력:

 초기에 numbers.empty(): 1
요소를 추가한 후 numbers.empty(): 0

위의 예제에서 set의 초기 크기가 0이므로, empty() 함수는1true)은 요소를 추가한 후 0(false)을 반환합니다.

예제2

set이 비어 있는지 확인하는 간단한 예제를 보겠습니다:

#include <iostream>
#include <set>
using namespace std;
int main(void) {
   set<char> s;
   if (s.empty())
      cout << "집합이 비어 있습니다." << endl;
   s = {100};
   if (!s.empty())
      cout << "집합이 비어 있지 않습니다." << endl;
   return 0;
}

출력:

집합이 비어 있습니다。
집합이 비어 있지 않습니다。

위의 예제에서 if 조건문을 사용했습니다. set이 비어 있으면, 요소를 추가한 후 set이 비어 있음을 반환합니다; set이 비어 있지 않으면, 요소를 추가한 후 set이 비어 있지 않음을 반환합니다.

예제3

다음은 간단한 예제를 보겠습니다:

#include <iostream>
#include <set>
using namespace std;
int main () {
{
  set<int> myset;
  myset = {100, 200, 300};
  while (!myset.empty())
  {
    cout << *myset.begin() << '\n';
    myset.erase(*myset.begin());
  }
  return 0;
}

출력:

100
200
300

위의 예제에서 empty() 함수를 while 루프에서 사용하여 set의 요소를 출력하며, set이 비어지지 않을 때까지 출력합니다.

예제4

다음은 간단한 예제를 보겠습니다:

#include <iostream>
#include <set>
#include <string>
using namespace std;
int main() {
  typedef set<int> phoneSet;
   
   int number;
   phoneSet phone;
   
   if (phone.empty())
      cout << "집합이 비어 있습니다. 내용을 삽입하세요! \n" << endl;
   
   cout << "입력 세 그룹의 숫자: \n";
   
   for (int i = 0; i <3; i++)
   {
       cin >> number;    // 값을 얻습니다
       phone.insert(number);   //데이터를 set에 삽입
   }
   if (!phone.empty())
   {
      cout << "\n전화번호 목록: \n";
      phoneSet::iterator p;
      for(p = phone.begin(); p!=phone.end(); p++)
      {
          cout<<(*p<<" \n ";
      }
   }
   return 0;
}

출력:

집합이 비어 있습니다. 내용을 입력하세요!
 
세 그룹의 숫자를 입력하세요: 
1111
5555
3333
전화 번호 목록: 
1111 
3333 
5555

위의 예제에서, 이 프로그램은 먼저 세 그룹의 숫자를 사용하여 전화기를 생성하고, 전화기가 비어 있는지 확인합니다. set이 비어 있으면 메시지를 표시하고, 아니면 set에 있는 모든 사용 가능한 전화 번호를 표시합니다.

C++ STL Set(집합)