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] |