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

FreeBSD Manual Pages

  
 
  

home | help
std::priori...ue::emplace(3)  C++ Standard Libary std::priori...ue::emplace(3)

NAME
       std::priority_queue::emplace - std::priority_queue::emplace

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

	  Pushes  a  new  element  to  the priority queue. The element is con-
       structed	in-place,
	  i.e. no copy or move operations are performed.  The  constructor  of
       the element is
	  called with exactly the same arguments as supplied to	the function.

	  Effectively calls c.emplace_back(std::forward<Args>(args)...);
	  std::push_heap(c.begin(), c.end(), comp);

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

Return value
	  (none)

Complexity
	  Logarithmic  number  of  comparisons	plus  the  complexity  of Con-
       tainer::emplace_back.

Example
       // Run this code

	#include <iostream>
	#include <queue>

	struct S
	{
	    int	id;

	    S(int i, double d, std::string s) :	id{i}
	    {
		std::cout << "S::S(" <<	i << ",	" << d	<<  ",	\""  <<	 s  <<
       "\");\n";
	    }

	    friend  bool  operator<  (S	 const&	x, S const& y) { return	x.id <
       y.id; }
	};

	int main()
	{
	    std::priority_queue<S> adaptor;

	    adaptor.emplace(42,	3.14, "C++");

	    std::cout << "id: "	<< adaptor.top().id << '\n';
	}

Output:
	S::S(42, 3.14, "C++")
	id = 42

See also
	  push inserts element and sorts the underlying	container
	       (public member function)
	  pop  removes the top element
	       (public member function)

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

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

home | help