table of contents
        
      
      
    - Tumbleweed 2024.07.05-1.3
 - Leap-16.0
 - Leap-15.6
 
| std::multimap::merge(3) | C++ Standard Libary | std::multimap::merge(3) | 
NAME¶
std::multimap::merge - std::multimap::merge
Synopsis¶
 template< class C2 > (1) (since C++17)
  
   void merge( std::map<Key, T, C2, Allocator>& source );
  
   template< class C2 > (2) (since C++17)
  
   void merge( std::map<Key, T, C2, Allocator>&& source );
  
   template< class C2 > (3) (since C++17)
  
   void merge( std::multimap<Key, T, C2, Allocator>& source );
  
   template< class C2 > (4) (since C++17)
  
   void merge( std::multimap<Key, T, C2, Allocator>&& source
  );
  
   Attempts to extract ("splice") each element in source and insert it
    into *this using
  
   the comparison object of *this.
  
   No elements are copied or moved, only the internal pointers of the container
    nodes
  
   are repointed. All pointers and references to the transferred elements remain
    valid,
  
   but now refer into *this, not into source.
  
   The behavior is undefined if get_allocator() != source.get_allocator().
Parameters¶
source - compatible container to transfer the nodes from
Return value¶
(none)
Exceptions¶
Does not throw unless comparison throws.
Complexity¶
N * log(size() + N)), where N is source.size().
Example¶
// Run this code
  
   #include <iostream>
  
   #include <map>
  
   #include <string>
  
   int main()
  
   {
  
   std::multimap<int, std::string> ma{{1, "apple"}, {5,
    "pear"}, {10, "banana"}};
  
   std::multimap<int, std::string> mb{{2, "zorro"}, {4,
    "batman"}, {5, "X"}, {8, "alpaca"}};
  
   std::multimap<int, std::string> u;
  
   u.merge(ma);
  
   std::cout << "ma.size(): " << ma.size() << '\n';
  
   u.merge(mb);
  
   std::cout << "mb.size(): " << mb.size() <<
  '\n';
  
   for (auto const& kv : u)
  
   std::cout << kv.first << ", " << kv.second
    << '\n';
  
   }
Output:¶
 ma.size(): 0
  
   mb.size(): 0
  
   1, apple
  
   2, zorro
  
   4, batman
  
   5, pear
  
   5, X
  
   8, alpaca
  
   10, banana
See also¶
 extract extracts nodes from the container
  
   (C++17) (public member function)
  
   inserts elements
  
   insert or nodes
  
   (since C++17)
  
   (public member function)
| 2024.06.10 | http://cppreference.com |