C++ Map Library - multimap() Function


Advertisements

Description

The C++ function std::multimap::multimap() constructs a multimap with as many elements as in range of first to last.

Declaration

Following is the declaration for std::multimap::multimap() function form std::map header.

C++98

template <class InputIterator>
multimap (InputIterator first, InputIterator last,
          const key_compare& comp = key_compare(),
          const allocator_type& alloc = allocator_type());

C++11

template <class InputIterator>
multimap (InputIterator first, InputIterator last,
          const key_compare& comp = key_compare(),
          const allocator_type& = allocator_type());

Parameters

  • first − Input iterator to initial position.

  • last − Input iterator to final position.

  • comp − A binary predicate, which takes two key arguments and returns true if first argument goes before second otherwise false. By default it uses less predicate.

  • alloc − The allocator object.

Return value

Constructor never returns value.

Exceptions

No effect on container if exception is thrown.

Time complexity

Linear i.e. O(n)

Example

The following example shows the usage of std::multimap::multimap() function.

#include <iostream>
#include <map>

using namespace std;

int main(void) {
   /* Multimap with duplicates */
   multimap<char, int> m1 = {
         {'a', 1},
         {'a', 2},
         {'b', 3},
         {'c', 4},
         {'c', 5},
               };

   multimap<char, int>m2(m1.begin(), m1.end());

   cout << "Multimap contains following elements:" << endl;

   for (auto it = m2.begin(); it != m2.end(); ++it)
      cout << it->first << " = " << it->second << endl;

   return 0;
}

Let us compile and run the above program, this will produce the following result −

Multimap contains following elements:
a = 1
a = 2
b = 3
c = 4
c = 5
map.htm
Advertisements