C++ unordered_multimap::clear() 函数



C++ 的std::unordered_multimap::clear()函数用于通过删除所有元素并设置 unordered_multimap 的大小为零来销毁或丢弃 unordered_multimap。

从 unordered_multimap 中删除所有元素后,我们可以使用 insert() 和 emplace() 函数将新元素添加到同一个 unordered_multimap 中。

语法

以下是 std::unordered_multimap::clear() 函数的语法。

void clear() noexcept;

参数

此函数不接受任何参数。

返回值

此函数不返回任何内容,因为使用 clear() 函数后 unordered_multimap 的大小为零。

示例 1

在以下示例中,让我们看看 clear() 函数的使用方法。

#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
   unordered_multimap<char, int> umm = {
      {'a', 1},
      {'b', 2},
      {'c', 3},
      {'b', 2},
      {'c', 3},
      {'d', 4},
   };
   cout << "Initial size of unordered multimap = " << umm.size() << endl;
   umm.clear();

   cout << "Size of unordered multimap after use of clear() function = " << umm.size() << endl;
   return 0;
}

输出

让我们编译并运行上述程序,这将产生以下结果:

Initial size of unordered multimap = 5
Size of unordered multimap after clear operaion = 0

示例 2

考虑以下示例,我们将在此示例中在执行 clear() 函数后将元素添加到映射中。

#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
int main () {
   unordered_multimap<string,string> ummap = { {"Aman","Kumar"}, {"Vivek","Verma"}, {"Jhon","Satya"} };

   cout << "ummap contains:";
   for (auto& x: ummap)cout << " " << x.first << "=" << x.second;
      cout << endl;
    
   //removing all the element from the map.
   ummap.clear();
    
   //adding two element from the map
   ummap.insert({"tutorialspoint", "Noida"});
   ummap.insert({"tutorialspoint","Hyderabad"});
   cout << "ummap contains:";
   for (auto& x: ummap) cout << " " << x.first << "=" << x.second;
      cout << endl;
   return 0;
}

输出

如果我们运行上述代码,它将生成以下输出:

ummap contains: Vivek=Verma Jhon=Satya Aman=Kumar
ummap contains: tutorialspoint=Hyderabad tutorialspoint=Noida

示例 3

让我们看一下以下示例,我们将在此示例中稍后显示 unordered_multimap 的元素,应用 clear() 函数并显示 unordered_multimap 的大小。

#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
int main () {
   unordered_multimap<int, string> uMmap;
   uMmap.insert({1, "tutorialspoint"});
   uMmap.insert({1, "tutorialspoint"});
   uMmap.insert({2, "Hyderabad India"});
   uMmap.insert({3, "Tutorix"});
   uMmap.insert({4, "Noida India"});
   cout<<"Before use of clear() functon";
   for (auto& x: uMmap) cout << "\n" << x.first << "=" << x.second;
      cout << endl;
    
   uMmap.clear();
   cout<<"After use of clear() function \n";
   cout <<uMmap.size();
   return 0;
}

输出

以下是上述代码的输出:

Before use of clear() functon
4=Noida India
3=Tutorix
2=Hyderabad India
1=tutorialspoint
1=tutorialspoint
After use of clear() function 
0

示例 4

以下是一个示例,我们将使用两个 unordered_multimap,一个存储项目,另一个存储从第一个过滤偶数键后获得的项目,稍后我们应用 clear() 函数并显示在之前和之后的尺寸。

#include <string>
#include <iostream>
#include <unordered_map>
using namespace std;
int main () {
   unordered_multimap<int, string> uMmap, umm;
   uMmap.insert({1, "tutorialspoint"});
   uMmap.insert({1, "tutorialspoint"});
   uMmap.insert({2, "Hyderabad India"});
   uMmap.insert({3, "Tutorix"});
   uMmap.insert({4, "Noida India"});
   cout<<"Umm Before use of clear() functon"<<endl;
   for (auto& x: uMmap){
      if(x.first % 2 != 0){
         umm.insert({x.first, x.second});
      }
   }
    
   for(auto& x: umm){
      cout<<x.first<<" : "<<x.second<<endl;
   }
   cout<<"size of umm before use of clear function: "<<endl;
    
   cout <<umm.size()<<endl;
   cout<<"size of umm after use of clear() function \n";
   // umm.clear();
   umm.clear();
   cout<<umm.size()<<endl;
   return 0;
}

输出

上述代码的输出如下:

Umm Before use of clear() functon
1 : tutorialspoint
1 : tutorialspoint
3 : Tutorix
size of umm before use of clear function: 
3
size of umm after use of clear() function 
0
广告

© . All rights reserved.