CPP Tutorial

CPP examples programs

CPP Multimap

Multimaps in CPP are used to store sorted key-value pair. They are the associative containers. Each key in a Multimap is not necessarily unique. Unlike maps, duplication of keys is allowed in case of multimap. CPP facilitates insertion and deletion of a key in a Multimap but do not allow any modifications, however, values can be modified.

Member Functions of a CPP Multimap:

Allocator:

FUNCTION USES
get_allocator To return an allocator object to construct the Multimap.

 

Capacity:

FUNCTION USES
empty() To determine whether the Multimap is empty or not.
max_size() To determine the maximum size of the Multimap.
size() To determine number of elements in the Multimap.

 

Constructor/Destructor:

FUNCTION USES
(constructor) To construct a Multimap.
(destructor) To destruct a Multimap.
operator= To copy the elements of the Multimap to another Multimap.

 

Iterators:

FUNCTION USES
begin() To point to the first element of the Multimap.
cbegin() To return a constant iterator to the beginning of the Multimap.
cend() To return a constant iterator to the end.
crbegin() To return a const reverse iterator to the beginning.
crend() To return a const reverse iterator to the end.
end() To return an iterator to the end.
rbegin() To return a reverse iterator to the beginning.
rend() To return a reverse iterator to the end.

 

Modifiers:

FUNCTION USES
clear() To remove all the elements of the Multimap.
erase() To delete the specified element.
emplace() To construct and insert a new element at a specified position.
emplace_hint() To construct and insert a new element at a specified position by hint.
insert() To insert a new element in the Multimap..
swap() To exchange the contents of two Multimaps.

 

Non-Member Overloaded Functions:

FUNCTION USES
operator== To determine whether the two Multimaps are equal or not.
operator!= To determine whether the two Multimaps are equal or not.
operator<= To determine whether the first Multimap is less than or equal to other or not.
operator< To determine whether the first Multimap is less than other or not.
operator>= To determine whether the first Multimap is greater than equal to other or not.
operator> To determine whether the first Multimap is greater than other or not.
swap() To exchange the contents of two Multimaps.

 

Observers:

FUNCTION USES
key_comp To return a copy of key comparison object.
value_comp To return a copy of value comparison object.

 

Operations:

FUNCTION USES
count To get the number of elements matching with given key.
equal_range To get the range of elements matches with given key.
find To find an element with given key.
lower_bound To get an iterator to lower bound.
upper_bound To get an iterator to upper bound.

 

Example:

#include <iostream>  
#include <map>  
#include <string>  
 
using namespace std;  
 
int main()  
{  
multimap<int, string> fruits = {  
{100,"APPLE"},  
{200, "MANGO"},  
{200, "BANANA"},  
{300, "GUAVA"}  
};  
 
cout << "Size of map fruits: " << fruits.size() <<endl; 	 
cout << "Elements in fruits: " << endl;  
 
for (multimap<int, string>::iterator i = fruits.begin(); i != fruits.end(); ++i)  
{  
cout << "  [" << (*i).first << ", " << (*i).second << "]" << endl;  
}  
 
return 0;  
}

Output

Size of map fruits: 4           
Elements in fruits: 
  [100, APPLE]        
  [200, MANGO]           
  [200, BANANA]      
  [300, GUAVA]