C++教程
C++控制语句
C++函数
C++数组
C++指针
C++对象
C++继承
C++多态
C++抽象
C++常用
C++ STL教程
C++迭代器
C++程序

C++ multiset clear()

C++ multiset clear()

C++ multiset 合 clear()函数用于删除 multiset 合容器的所有元素。清除 multiset 并将其大小转换为0。

语法

void clear();                 //until C++ 11
void clear() noexcept;      //since C++ 11

参数

返回值

复杂度

线性大小。

迭代器有效性

与此容器相关的所有指针,引用和迭代器均无效。

数据竞争

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

异常安全性

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

示例1

让我们看一个简单的示例,在清除操作之前和之后计算 multiset 的大小:
#include <iostream>
#include <set>
using namespace std;
int main() {
   multiset<int> mymultiset = {10,20,20,30}; 
   cout << "Initial size of multiset before clear operation = " << mymultiset.size() << endl;
   mymultiset.clear();
   cout << "Size of multiset after clear operation = " << mymultiset.size() << endl;
   return 0;
}
输出:
Initial size of multiset before clear operation = 4
Size of multiset after clear operation = 0
在上面的示例中,使用4个元素初始化了一个 multiset ,因此大小为4,但是在清除操作之后,大小变为0。

示例2

让我们看一个简单的示例来清除 multiset 的元素:
#include <iostream>
#include <set>
using namespace std;
int main ()
{
  multiset<string> mymultiset;
  mymultiset = {"Nikita","Deep","Aman"};
  cout << "mymultiset contains:\n";
  for (multiset<string>::iterator it=mymultiset.begin(); it!=mymultiset.end(); ++it)
    cout << *it<< '\n';
  mymultiset.clear();
  
  mymultiset= {"Deep", "Raaz"};
  cout << "\nmymultiset contains:\n";
  for (multiset<string>::iterator it=mymultiset.begin(); it!=mymultiset.end(); ++it)
    cout << *it<< '\n';
  return 0;
}
输出:
mymultiset contains:
Aman
Deep
Nikita
mymultiset contains:
Deep
Raaz
在上面的示例中,清除了 multiset 后,我们可以添加新元素而无需初始化。

示例3

让我们看一个简单的示例清除 multiset 的元素:
#include <iostream>
#include <set>
using namespace std;
int main ()
{
  int n;
  multiset<string> m1,m2,m3;
  
  m1 = {"Hello", "World"};
  m2 = {"Java", "Program"};
  m3 = {"C++", "Coding"};
  cout << "m1 group has following members:\n";
  for (multiset<string>::iterator it=m1.begin(); it!=m1.end(); ++it)
    cout << *it << ' ';
  
  cout << "\n\nm2 group has following members:\n";
  for (multiset<string>::iterator it=m2.begin(); it!=m2.end(); ++it)
    cout << *it<< ' ';
  cout << "\n\nm3 group has following members:\n";
  for (multiset<string>::iterator it=m3.begin(); it!=m3.end(); ++it)
    cout << *it<< ' ';
  
  cout<<"\n\nWhich group do you want to delete?\n 1.m1\n 2.m2\n 3.m3\n Please enter your choice: ";
  cin>>n;
  
  if(n==1){
  m1.clear();
  cout<<"\nGroup m1 has been cleared.";
  }
  else if(n==2){
  m2.clear();
  cout<<"\nGroup m2 has been cleared.";
  }
  else if(n==3){
  m3.clear();
  cout<<"\nGroup m3 has been cleared.";
  }
  else
  cout<<"Invalid option!";
  
  return 0;
}
输出:
m1 group has following members:
Hello World 
m2 group has following members:
Java Program 
m3 group has following members:
C++ Coding 
Which group do you want to delete?
 1.m1
 2.m2
 3.m3
 Please enter your choice: 2
Group m2 has been cleared.
在上面的示例中,有3组 multiset ,并且根据用户的选择删除了一组。

示例4

让我们看一个简单的例子:
#include <iostream>
#include <set>
using namespace std;
int main() {
    
   int n;
   
   multiset<string> fruit = {"Banana","Apple","Orange","Banana"};
   cout << "Fruit bucket has following fruits = \n";
   for (multiset<string>::iterator it=fruit.begin(); it!=fruit.end(); ++it)
    cout << *it<< '\n';
   cout<<"\ndo you want to clear your fruit bucket?\nPress 1 for Yes and 0 for No: ";
   cin>>n;
   
   if( n==1){
   fruit.clear();
   cout<<fruit.size()<<" fruits in bucket \n";  
   }
   else if(n==0)
   cout <<fruit.size() << " fruits in bucket \n" ;
    
   
   return 0;
}
输出:
1.
Fruit bucket has following fruits = 
Apple
Banana
Banana
Orange
do you want to clear your fruit bucket?
Press 1 for Yes and 0 for No: 1
0 fruits in bucket 
2. 
Fruit bucket has following fruits = 
Apple 
Banana 
Banana
Orange
do you want to clear your fruit bucket?
Press 1 for Yes and 0 for No: 1
4 fruits in bucket
在上面的示例中,一个水果 multiset 用三个水果初始化。要求清除 multiset ,如果输入0,则水果桶有4个元素;如果输入1,则清除水果 multiset ,大小变为0。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4