Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 ele-
       ments remain valid,
	  but now refer	into *this, not	into source.

	  The behavior is undefined if get_allocator()	!=  source.get_alloca-
       tor().

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 <map>
	#include <iostream>
	#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)

http://cppreference.com		  2022.07.31	       std::multimap::merge(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::multimap::merge&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help