C ++ emplace_back

C ++ emplace_back
O método C ++ Std :: Vector :: Emplace_back () estende o vetor adicionando um novo elemento. Se for necessário espaço adicional, a realocação ocorrer. Quando um item é adicionado ou retirado, os vetores têm uma capacidade semelhante às matrizes dinâmicas para redimensionar automaticamente. O armazenamento vetorial é tratado automaticamente pelo contêiner. Além disso, usando a função Emplace_back (), pode -se adicionar um elemento ao final de um vetor, seguindo o que já está lá. Esta estrutura já existe. Vamos em frente com alguns exemplos para entender mais sobre o método emplace_back ().

Sintaxe do emplace_back () em C++

A declaração para a função STD :: Vector :: emplace_back () do cabeçalho STD :: Vector é fornecida no seguinte:

# vetor.emplace_back (elemento);

O parâmetro é o elemento que é adicionado ao vetor. Os resultados são o parâmetro que é inserido no vetor no último ponto. Uma exceção chamada bad_alloc é emitida se a realocação falhar. Se uma exceção for lançada, nada será alterado por causa da forte garantia de exceção. Para evitar que um erro seja jogado, o parâmetro deve ser do mesmo tipo que o contêiner.

Exemplo 1:

O uso da função Emplace_back () é demonstrado no exemplo a seguir:

#incluir
#incluir
usando namespace std;
int main ()

Vectorvec;
VEC.emplace_back (1);
VEC.emplace_back (2);
VEC.emplace_back (3);
VEC.emplace_back (4);
VEC.emplace_back (5);
para (auto it = vec.começar(); isto != Vec.fim(); ++ it)
cout<< " << *it;
retornar 0;

Importamos os módulos para o uso de métodos e classes no programa. Comece com o exemplo da função principal. Criamos um objeto como "VEC" de vetores de classe com o tipo de dados int. Em seguida, invocamos o método emplace_back () com cada objeto vetorial e inserimos um elemento vetorial como um argumento no método emplace_back (). O loop "for" é então usado para exibir os componentes dos vetores. No loop for, temos uma palavra -chave automática com a variável "it" que é definida com o método de início. Também definimos sua variável com o método final. Isso itera o elemento vetorial com o operador de incremento e retorna os elementos nos vetores, como mostrado na tela de saída a seguir:

Exemplo 2:

Como no exemplo anterior, temos um exemplo de vetor inteiro que usa a função Emplace_back (). Agora, temos um exemplo de um programa de vetor de string para demonstrar o uso da função emplace ().

#incluir
#incluir
#incluir
usando namespace std;
int main ()

Vectorvector_item;
Vector_item.emplace_back ("Hello");
Vector_item.emplace_back ("meu");
Vector_item.emplace_back ("geeks");
Vector_item.emplace_back ("para");
Vector_item.emplace_back ("método emplace_back");
para (auto it = vector_item.começar(); isto != Vector_item.fim(); ++ it)
cout<< " << *it;
retornar 0;

Depois de definir a namespace std, criamos o método principal deste programa específico. Dentro dele, estabelecemos o objeto de classe vetorial como "Vector_item". Em seguida, chamamos esse objeto de "vetor_item" com o método emplace_back () e inserimos os elementos do vetor como um argumento. Inserimos os vetores de string no método emplace_back (). Para exibir esses vetores de string na tela do console, implantamos o método de loop "for". Você pode ver que todas as cordas vetoriais são geradas na forma horizontal.

Exemplo 3:

O exemplo para demonstrar o vetor de personagem usando a função Emplace_back ().

#incluir
#incluir
usando namespace std;
int main ()

vectormyvec;
Myvec.emplace_back ('l');
Myvec.emplace_back ('i');
Myvec.emplace_back ('n');
Myvec.emplace_back ('u');
Myvec.emplace_back ('x');
para (auto it = myvec.começar(); isto != Myvec.fim(); ++ it)
cout<< " << *it;
retornar 0;

Criamos o objeto vetor. Então, com o objeto vetor "myvec", chamamos o método emplace_back (). Entramos os diferentes caracteres a cada vez no método emplace_back (). O loop "for" é usado para imprimir os valores do caractere do método emplace_back (). A tela a seguir mostra o valor do caractere retornado do método emplace_back ().

Exemplo 4:

Use a função Emplace_back () para adicionar os números inteiros a um vetor vazio e, em seguida, determine o tamanho do vetor resultante. Para isso, temos um algoritmo. O algoritmo é que precisamos utilizar a função Emplace_back () para adicionar os elementos ao vetor. Então, verifique se o tamanho do vetor é 0. Caso contrário, coloque o elemento traseiro e aumente a variável do contador que foi inicialmente inicializada para 0. Quando o tamanho do vetor for reduzido para 0, repita este procedimento. Exibir o valor final da variável.

#incluir
#incluir
usando namespace std;
int main ()

int conting = 0;
vetorv;
v.emplace_back (1);
v.emplace_back (2);
v.emplace_back (3);
v.emplace_back (4);
enquanto (!v.vazio())
contagem ++;
v.pop_back ();

cout<< "count value:" ;
cout<retornar 0;

Lá, temos o principal método deste programa. Temos a variável "contagem" que é inicializada com o valor zero. Então, temos um objeto "V" do vetor de classe. Temos o método emplace_back () através do qual inserimos os elementos inteiros. Depois disso, temos um loop de tempo que imprime o valor da contagem. O elemento vetor. Então, a contagem é incrementada pelo método pop_back (). A seguir, é apresentada uma tela que mostra o valor da contagem:

Exemplo 5:

O push_back () converte uma string em um vetor. Um novo objeto de string é gerado implicitamente e inicializado com o char fornecido*. A string original é um objeto temporário, empurrar para trás é então invocado. Copie esta string no vetor com o construtor de função de movimentação. Então, o item transitório é destruído. Por outro lado, o emplace_back () constrói as cordas no lugar, nenhuma série temporária é criada; Em vez disso, emplace_back () é chamado diretamente com um parâmetro char*. Em seguida, gera uma string que é salva no vetor que foi inicializado com este char*. Dessa forma, evitamos criar e descartar um objeto de string temporário inútil.

#incluir
usando namespace std;
int main ()

vetormy_vect;
my_vect.emplace_back ('x', 12);
my_vect.push_back (make_pair ('y', 15));
para (int i = 0; icout<<retornar 0;

Dentro do Int Main, declaramos que a fila de vetor prioritária é declarada como o objeto "my_vect". Em seguida, temos o método emplace_back () que tem a entrada do par no lugar. Depois disso, inserimos os valores do par com o método push_back (). Os valores do par de emplace_back () e push_back () são impressos com a ajuda de um loop for. Os valores de pares inseridos são executados no seguinte prompt:

Conclusão

Agora, está muito claro para você a funcionalidade do método emplace_back () em c++. O benefício da colocação é que ele executa uma inserção no local e impede a necessidade de duplicar um objeto. Qual deles usamos não importa para os tipos de dados primitivos. No entanto, o uso do emplace () é recomendado para os objetos devido ao seu desempenho. Cobrimos todos os programas de exemplo possíveis para explicar a função Emplace_back (). Além disso, diferenciamos o método emplace_back () e o método push_back () com o programa de exemplo.