C++ Unordered_multimap::count() Function



The C++ unordered_multimap::count() function is used to return the number of mapped values associated with key k. If the key is not present in the unordered_multimap, then it returns zero otherwise, it returns a total number.

Syntax

Following is the syntax of unordered_multimap::count() function 

size_type count(const key_type& k) const;

Parameters

  • k − It indicates the key value to be searched for.

Return value

Returns 1 if container has value associated with key k otherwise 0.

Example 1

In the following example, let's demonstrate the usages of count() function.

#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},
      {'e', 5}
   };
   int t_b = umm.count('b');
   int t_z = umm.count('z');
   cout<<"Total number of key b: "<<t_b<<endl;
   cout<<"Total number of key z: "<<t_z<<endl;
   return 0;
}

Output

If we run the above code it will generate the following output −

Total number of key b: 2
Total number of key z: 0

Example 2

Consider the following example, where we are going to use the count() function to add the value of the associated key that occurs more than or equal to 2.

#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
   unordered_multimap<int, int> umm = {
      {10, 1},
      {10, 2},
      {20, 3},
      {10, 4},
      {30, 5}
   };
   int valueSum = 0;
   for(auto& it: umm) {
      if(umm.count(it.first)>=2){
         valueSum = valueSum + it.second;
      }
   }
   cout<<"addition of key that occurs more than or equal to 2 time: " <<valueSum<<endl;
   return 0;
}

Output

Following is the output of the above code −

addition of key that occurs more than or equal to 2 time: 7

Example 3

Let's look at the following example, where we are going to display the key/value pairs if the total number of values associated with the key is more than or equal to 2.

#include <iostream>
#include <unordered_map>
using namespace std;
int main(void) {
   unordered_multimap<char, int> umm = {
      {'a', 1},
      {'b', 2},
      {'c', 3},
      {'d', 4},
      {'b', 2},
      {'c', 3},
      {'d', 4},
   };
   for(auto& it: umm){
     if(umm.count(it.first) >=2)
        cout<<it.first<<" : "<<it.second<<endl;  
   }
   return 0;
}

Output

Output of the above code is as follows −

d : 4
d : 4
c : 3
c : 3
b : 2
b : 2
Advertisements