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.
#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;
}