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

FreeBSD Manual Pages

  
 
  

home | help
std::priority_queue::push(3)  C++ Standard Libary std::priority_queue::push(3)

NAME
       std::priority_queue::push - std::priority_queue::push

Synopsis
	  void push( const value_type& value );
	  void push( value_type&& value	);	 (since	C++11)

	  Pushes the given element value to the	priority queue.

	  1)  Effectively  calls c.push_back(value); std::push_heap(c.begin(),
       c.end(),	comp);
	  2)	  Effectively	    calls	c.push_back(std::move(value));
       std::push_heap(c.begin(),
	  c.end(), comp);

Parameters
	  value	- the value of the element to push

Return value
	  (none)

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

Example
       // Run this code

	#include <queue>
	#include <iostream>

	struct Event
	{
	    int	priority{};
	    char data{'	'};

	    friend bool	operator< (Event const&	lhs, Event const& rhs) {
		return lhs.priority < rhs.priority;
	    }

	    friend std::ostream& operator<< (std::ostream& os, Event const& e)
       {
		return os << "{	" << e.priority	<< ", '" << e.data << "' } ";
	    }
	};

	int main()
	{
	    std::priority_queue<Event> events;

	    std::cout << "Fill the events queue:\n";

	    for	(auto const e:	{  Event{6,'L'},  {8,'I'},  {9,'S'},  {1,'T'},
       {5,'E'},	{3,'N'}	}) {
		std::cout << e << ' ';
		events.push(e);
	    }

	    std::cout << "\n" "Process events:\n";

	    for	(; !events.empty(); events.pop()) {
		Event const& e = events.top();
		std::cout << e << ' ';
	    }
	}

Output:
	Fill the events	queue:
	{ 6, 'L' }  { 8, 'I' }	{ 9, 'S' }  { 1, 'T' }	{ 5, 'E' }  { 3, 'N' }
	Process	events:
	{ 9, 'S' }  { 8, 'I' }	{ 6, 'L' }  { 5, 'E' }	{ 3, 'N' }  { 1, 'T' }

See also
	  emplace  constructs  element	in-place and sorts the underlying con-
       tainer
	  (C++11) (public member function)
	  pop	  removes the top element
		  (public member function)

http://cppreference.com		  2022.07.31	  std::priority_queue::push(3)

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

home | help