CPP STL Tutorial : C++ std::multimap and it’s operations.

In this chapter we shall learn about:

1. multimap introduction.
2. multimap declaration.
3. Multidimensional Map
4. Passing std::multimap to function
5. multimap member function to iterate over elements.
6. multimap member function to check the capacity.
7. multimap member function to modify the elements.

1. multimap introduction.

1. Multi Maps are associative containers.
2. They are used to hold key value pairs.
3. key values are generally used to sort and uniquely identify the elements.
4. The elements in a map are always sorted by its key.
5. multimap are generally slower than unordered_multimap containers to access individual elements by their key.
6. In multimap multiple elements can have equivalent keys.

You need to use below header file to use multimap:

#include <map>

2. multimap declaration.

multimap can be declared as below:

  std::multimap<char,int> mymap;

  mymultimap.insert (std::pair<char,int>('a',100));
  mymultimap.insert (std::pair<char,int>('b',200));
  mymultimap.insert (std::pair<char,int>('c',40));
  mymultimap.insert (std::pair<char,int>('b',350));

4. Passing std::multimap to function

You can pass a multimap in 2 ways:
1. Pass by value
2. Pass by reference

1. Pass by value

void func(multimap<char,int> mymap) 
{ 
  mymultimap.insert (std::pair<char,int>('b',200));
} 
   
   
int main ()
{
  std::multimap<char,int> mymap;

  mymultimap.insert (std::pair<char,int>('a',100));
  mymultimap.insert (std::pair<char,int>('b',200));
  mymultimap.insert (std::pair<char,int>('c',40));
  mymultimap.insert (std::pair<char,int>('b',350));


  func(mymap);
  std::cout << "mymap contains using .begin:"<<endl;
  for (std::multimap<char,int>::iterator it=mymap.begin(); it!=mymap.end(); ++it)
    std::cout << it->first << " => " << it->second << '\n';


  return 0;
}

2. Pass by reference

void func(multimap<char,int> &mymap) 
{ 
  mymultimap.insert (std::pair<char,int>('b',200));
} 
   
   
int main ()
{
  std::multimap<char,int> mymap;

  mymultimap.insert (std::pair<char,int>('a',100));
  mymultimap.insert (std::pair<char,int>('b',200));
  mymultimap.insert (std::pair<char,int>('c',40));
  mymultimap.insert (std::pair<char,int>('b',350));

  func(mymap);
  std::cout << "mymap contains using .begin:"<<endl;
  for (std::map<char,int>::iterator it=mymap.begin(); it!=mymap.end(); ++it)
    std::cout << it->first << " => " << it->second << '\n';
  return 0;
}

5. multimap member function to iterate over elements.

begin : It will return iterator to beginning
end : It will return iterator to end
rbegin : It will return reverse iterator to reverse beginning
rend : It will return reverse iterator to reverse end
cbegin  : It will return const_iterator to beginning
cend   : It will return const_iterator to end
#include <iostream>
#include <map>
//for more tutorials on C, C++, STL, DS visit www.ProDeveloperTutorial.com
using namespace std;

int main ()
{
  std::multimap<char,int> mymultimap;

  mymultimap.insert (std::pair<char,int>('a',100));
  mymultimap.insert (std::pair<char,int>('b',200));
  mymultimap.insert (std::pair<char,int>('c',40));
  mymultimap.insert (std::pair<char,int>('b',350));


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

  std::cout << "mymultimap contains using .rbegin:"<<endl;
  std::multimap<char,int>::reverse_iterator rit;
  for (rit=mymultimap.rbegin(); rit!=mymultimap.rend(); ++rit)
    std::cout << rit->first << " => " << rit->second << '\n';

  std::cout << "mymultimap contains using .cbegin:"<<endl;
   for (auto it = mymultimap.cbegin(); it != mymultimap.cend(); ++it)
    std::cout << it->first << " => " << it->second << '\n';
  std::cout << '\n';   
  return 0;
}

6. multimap member function to check the capacity.

empty : Test whether container is empty
size : Return container size
max_size : Return maximum size

7. multimap member function to modify the elements.

insert : Insert elements
erase : Erase elements
swap : Swap content
clear : Clear content
Write a Comment

Leave a Comment

Your email address will not be published. Required fields are marked *