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

FreeBSD Manual Pages

  
 
  

home | help
std::multimap::emplace(3)     C++ Standard Libary    std::multimap::emplace(3)

NAME
       std::multimap::emplace -	std::multimap::emplace

Synopsis
	  template< class... Args >	       (since C++11)
	  iterator emplace( Args&&... args );

	  Inserts  a  new element into the container constructed in-place with
       the given args .

	  Careful use of emplace allows	the  new  element  to  be  constructed
       while avoiding
	  unnecessary copy or move operations. The constructor of the new ele-
       ment (i.e.
	  std::pair<const  Key,	 T>) is	called with exactly the	same arguments
       as supplied to
	  emplace, forwarded via std::forward<Args>(args)....

	  No iterators or references are invalidated.

Parameters
	  args - arguments to forward to the constructor of the	element

Return value
	  Returns an iterator to the inserted element.

Exceptions
	  If an	exception is thrown by any operation, this function has	no ef-
       fect (strong
	  exception guarantee).

Complexity
	  Logarithmic in the size of the container.

Example
       // Run this code

	#include <iostream>
	#include <utility>
	#include <string>
	#include <map>

	int main()
	{
	    std::multimap<std::string, std::string> m;

	    // uses pair's move	constructor
	    m.emplace(std::make_pair(std::string("a"), std::string("a")));

	    // uses pair's converting move constructor
	    m.emplace(std::make_pair("b", "abcd"));

	    // uses pair's template constructor
	    m.emplace("d", "ddd");

	    // uses pair's piecewise constructor
	    m.emplace(std::piecewise_construct,
		      std::forward_as_tuple("c"),
		      std::forward_as_tuple(10,	'c'));

	    for	(const auto &p : m) {
		std::cout << p.first <<	" => " << p.second << '\n';
	    }
	}

Output:
	a => a
	b => abcd
	c => cccccccccc
	d => ddd

See also
	  emplace_hint constructs elements in-place using a hint
	  (C++11)      (public member function)
		       inserts elements
	  insert       or nodes
		       (since C++17)
		       (public member function)

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

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

home | help