Biblioteca de Filas C ++ - Função emplace ()

Descrição

A função C ++ std::priority_queue::emplace()constrói e insere um novo elemento na ordem de classificação na priority_queue. O novo elemento é construído no local, ou seja, sem executar a operação de mover ou copiar.

Esta função de membro efetivamente chama a função emplace_back do contêiner subjacente.

Declaração

A seguir está a declaração para o formulário de função std :: priority_queue :: emplace () std :: queue header.

C ++ 11

template <class... Args> void emplace (Args&&... args);

Parâmetros

args - Argumentos encaminhados para construir o novo elemento.

Valor de retorno

Nenhum.

Exceções

Esta função de membro nunca lança exceção.

Complexidade de tempo

Logarítmico no tamanho do container.

Exemplo

O exemplo a seguir mostra o uso da função std :: priority_queue :: emplace ().

#include <iostream>
#include <queue>

using namespace std;

int main(void) {
   priority_queue<int> q;

   q.emplace(3);
   q.emplace(1);
   q.emplace(5);
   q.emplace(2);
   q.emplace(4);

   cout << "Queue contents are" << endl;
   while (!q.empty()) {
      cout << q.top() << endl;
   q.pop();
   }

   return 0;
}

Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -

Queue contents are
5
4
3
2
1