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

C++ STL Set(集合)

C ++ set clear()函數用于刪除set容器的所有元素。清除集合并將其大小轉換為0。

語法

void clear();                 //C++ 11 之前
void clear() noexcept;      //C++ 11 之后

參數

沒有

返回值

沒有

復雜

大小線性。

迭代器有效性

與該容器相關的所有迭代器,引用和指針均無效。

數據爭用

容器已修改。

所有包含的元素均已修改。

異常安全

此函數永遠不會引發(fā)異常。

實例1

讓我們看一個簡單的示例,在清除操作之前和之后計算set的大小:

#include <iostream>
#include <set>
using namespace std;

int main() {

   set<int> myset = {10,20,30,40}; 

   cout << "在清除操作前set集合初始大小 = " << myset.size() << endl;

   myset.clear();

   cout << "在清除操作后set集合大小 = " << myset.size() << endl;

   return 0;
}

輸出:

在清除操作前set集合初始大小 = 4
在清除操作后set集合大小 = 0

在上面的示例中,一個集合用4個元素初始化,因此大小為4,但是在清除操作后大小為0。

實例2

讓我們看一個簡單的示例,以清除集合中的元素:

#include <iostream>
#include <set>

using namespace std;

int main ()
{
  set<string> myset;

  myset = {"Nikita","Deep","Aman"};

  cout << "myset 包含:\n";
  for (set<string>::iterator it=myset.begin(); it!=myset.end(); ++it)
    cout << *it<< '\n';

  myset.clear();
  
  myset= {"Divya", "Raaz"};

  cout << "\nmyset 包含:\n";
  for (set<string>::iterator it=myset.begin(); it!=myset.end(); ++it)
    cout << *it<< '\n';

  return 0;
}

輸出:

myset 包含:
Aman
Deep
Nikita

myset 包含:
Divya
Raaz

在上面的示例中,清除設置后,我們可以添加新元素而無需初始化。

實例3

讓我們看一個簡單的示例,以清除集合中的元素:

#include <iostream>
#include <set>

using namespace std;

int main ()
{
  int n;
  set<string> m1,m2,m3;
  
  m1 = {"Hello", "World"};
  m2 = {"Java", "Program"};
  m3 = {"C++", "Coding"};

  cout << "m1組有以下成員:\n";
  for (set<string>::iterator it=m1.begin(); it!=m1.end(); ++it)
    cout << *it << ' ';
  

  cout << "\n\nm2組有以下成員:\n";
  for (set<string>::iterator it=m2.begin(); it!=m2.end(); ++it)
    cout << *it<< ' ';

  cout << "\n\nm3組有以下成員:\n";
  for (set<string>::iterator it=m3.begin(); it!=m3.end(); ++it)
    cout << *it<< ' ';
  
  cout<<"\n\n您要刪除哪個組?\n 1.m1\n 2.m2\n 3.m3\n請輸入您的選擇: ";
  cin>>n;
  
  if(n==1){
  m1.clear();
  cout<<"\nm1組已被清除。";
  }
  else if(n==2){
  m2.clear();
  cout<<"\nm2組已被清除。";
  }
  else if(n==3){
  m3.clear();
  cout<<"\nm3組已被清除。";
  }
  else
  cout<<"無效選項!";
  
  return 0;
}

輸出:

m1組有以下成員:
Hello World 

m2組有以下成員:
Java Program 

m3組有以下成員:
C++ Coding 

您要刪除哪個組?
 1.m1
 2.m2
 3.m3
請輸入您的選擇: 2

m2組已被清除。

在上面的示例中,設置了三組,并根據用戶的選擇刪除了一組。

實例4

讓我們看一個簡單的實例:

#include <iostream>
#include <set>
#include <string> 
using namespace std;

int main() {
    
   int n;
   
   set<string> fruit = {"Banana","Apple","Orange"};

   cout << "水果桶有以下水果 = \n";
   for (set<string>::iterator it=fruit.begin(); it!=fruit.end(); ++it)
    cout << *it<< '\n';

   cout<<"\n是否要清除水果籃?\n按1表示是,按0表示否。: ";
   cin>>n;
   
   if( n==1){
   fruit.clear();
   cout<<fruit.size()<<" 水果在桶里 \n";  
   }
   else if(n==0)
   cout <<fruit.size() << " 水果在桶里 \n" ;
    
   
   return 0;
}

輸出:

水果桶有以下水果 =
菠蘿
蘋果
香蕉

是否要清除水果籃?
按1表示是,按0表示否。: 1
0 桶里的水果全部被拿走

在上面的示例中,一個水果集用三個水果初始化。要求清除集,如果輸入0,則水果桶有3個元素;如果輸入1,則將清除水果集,大小變?yōu)?。

C++ STL Set(集合)

丰满人妻一级特黄a大片,午夜无码免费福利一级,欧美亚洲精品在线,国产婷婷成人久久Av免费高清