Libreria C ++ Deque - funzione emplace ()

Descrizione

La funzione C ++ std::deque::emplace()estende la deque inserendo un nuovo elemento in posizione . In caso di riallocazione, il requisito di archiviazione per questo contenitore viene soddisfatto dall'allocatore interno .

Dichiarazione

Di seguito è riportata la dichiarazione per la funzione std :: deque :: emplace () nel modulo std :: deque header.

C ++ 11

template <class... Args>
iterator emplace (const_iterator position, Args&&... args);

Parametri

  • position - Indice nella deque in cui inserire il nuovo elemento.

  • args - Argomenti inoltrati per costruire il nuovo elemento.

Valore di ritorno

Restituisce un iteratore ad accesso casuale che punta all'elemento appena posizionato.

Eccezioni

Se la riallocazione fallisce, viene generata l'eccezione bad_alloc .

Complessità temporale

Lineare cioè O (n)

Esempio

L'esempio seguente mostra l'utilizzo della funzione std :: deque :: emplace ().

#include <iostream>
#include <deque>

using namespace std;

int main(void) {

   deque<int> d = {1, 2, 5};

   auto it = d.emplace(d.begin() + 2, 3);

   d.emplace(it, 4);

   cout << "Contents of deque are" << endl;

   for (auto it = d.crend() - 1; it >= d.crbegin(); --it)
      cout << *it << endl;

   return 0;
}

Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:

Contents of deque are
1
2
4
3
5