C++ Multimap 中的 clear函数

首页 / C++入门教程 / C++ Multimap 中的 clear函数

C++multimap clear()函数用于删除multimap集合的所有元素。清除multimap并将其大小设置为0。

clear - 语法

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

clear - 例子1

让我们看一个简单的示例,在清除操作之前和之后计算multimap的大小:

#include <iostream>
#include <map>

using namespace std;

int main() {

   multimap<char, int> mymultimap = {
            {'a', 1},
            {'b', 2},
            {'b', 3},
            {'d', 4},
            {'d', 5},
            };

   cout << "Initial size of multimap before clear operation = " << mymultimap.size() << endl;

   mymultimap.clear();

   cout << "Size of multimap after clear operation = " << mymultimap.size() << endl;

   return 0;
}

输出:

Initial size of multimap before clear operation = 5
Size of multimap after clear operation = 0

在上面的示例中,multimap使用5个元素初始化,因此大小为5,但在清除操作后大小为0。

clear - 例子2

让我们看一个简单的示例,以清除multimap的元素:

链接:https://www.learnfk.comhttps://www.learnfk.com/c++/cpp-multimap-clear-function.html

来源:LearnFk无涯教程网

#include <iostream>
#include <map>

using namespace std;

int main ()
{
  multimap<int,string> mymultimap;

  mymultimap = {
               {1, "Nikita"},
               {2, "Divya" },
               {1, "Ashish"} };

  cout << "mymultimap contains:\n";
  for (multimap<int,string>::iterator it=mymultimap.begin(); it!=mymultimap.end(); ++it)
    cout << it->first << " : " << it->second << '\n';

  mymultimap.clear();
  
  mymultimap = {
               {1, "Aman"},
               {2, "Deep"}
               };
               
  cout << "\nmymultimap contains:\n";
  for (multimap<int,string>::iterator it=mymultimap.begin(); it!=mymultimap.end(); ++it)
    cout << it->first << " : " << it->second << '\n';

  return 0;
}

输出:

mymultimap contains:
1 : Nikita
1 : Ashish
2 : Divya

mymultimap contains:
1 : Aman
2 : Deep

在上面的示例中,清除multimap后,我们可以添加新元素而无需初始化。

无涯教程网

clear - 例子3

让我们看一个简单的示例,以清除multimap的元素:

链接:https://www.learnfk.comhttps://www.learnfk.com/c++/cpp-multimap-clear-function.html

来源:LearnFk无涯教程网

#include <iostream>
#include <map>

using namespace std;

int main ()
{
  int n;
  multimap<int,string> m1,m2,m3;

  m1 = { {1, "Nikita"},
         {2, "Deep"},
         {1, "Ashish"}  };
  
  m2 = { {1, "Nidhi"},
        {2, "Priya"},
        {2, "Gitanjali"} };
  
  m3 = { {1, "Manas"},
       {3, "Fruti"},
       {3, "Kamlesh"} };
  

  cout << "m1 group has following members:\n";
  for (multimap<int,string>::iterator it=m1.begin(); it!=m1.end(); ++it)
    cout << it->first << " : " << it->second << '\n';
  

  cout << "m2 group has following members:\n";
  for (multimap<int,string>::iterator it=m2.begin(); it!=m2.end(); ++it)
    cout << it->first << " : " << it->second << '\n';

  cout << "m3 group has following members:\n";
  for (multimap<int,string>::iterator it=m3.begin(); it!=m3.end(); ++it)
    cout << it->first << " : " << it->second << '\n';
  
  cout<<"\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:
1 : Nikita
1 : Ashish
2 : Deep

m2 group has following members:
1 : Nidhi
2 : Priya
2 : Gitanjali

m3 group has following members:
1 : Manas
3 : Fruti
3 : Kamlesh

Which group do you want to delete?
 1.m1
 2.m2
 3.m3
 Please enter your choice: 2

Group m2 has been cleared.

在上面的示例中,有三组multimap,并且根据用户的选择,已删除了一组。

clear - 例子4

让我们看一个简单的例子:

#include <iostream>
#include <map>

using namespace std;

int main() {
    
   int n;
   
   multimap<string, int> fruit = {
            {"Banana", 40},
            {"Apple", 190},
            {"Orange", 120},
            };

   cout << "Fruit bucket has following fruits = \n";
   for (multimap<string,int>::iterator it=fruit.begin(); it!=fruit.end(); ++it)
    cout << it->first << " : " << it->second << '\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 : 190
Banana : 40
Orange : 120

Do you want to clear your fruit bucket?
Press 1 for Yes and 0 for No: 0
3 fruits in bucket

2. 
Fruit bucket has following fruits = 
Apple : 190
Banana : 40
Orange : 120

Do you want to clear your fruit bucket?
Press 1 for Yes and 0 for No: 1
0 fruits in bucket

在上面的示例中,一个水果多重图用三个水果初始化。如果输入0则要求清除multimap,则水果桶有3个元素;如果输入1,则将清除水果multimap,大小变为0。

祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)

技术教程推荐

浏览器工作原理与实践 -〔李兵〕

分布式技术原理与算法解析 -〔聂鹏程〕

雷蓓蓓的项目管理实战课 -〔雷蓓蓓〕

SRE实战手册 -〔赵成〕

如何落地业务建模 -〔徐昊〕

PyTorch深度学习实战 -〔方远〕

中间件核心技术与实战 -〔丁威〕

结构思考力 · 透过结构看思考 -〔李忠秋〕

手把手带你写一个 MiniTomcat -〔郭屹〕

好记忆不如烂笔头。留下您的足迹吧 :)