C ++ Vector Library - Funzione emplace ()

Descrizione

La funzione C ++ std::vector::emplace()estende il contenitore inserendo un nuovo elemento in posizione . La riallocazione avviene se è necessario più spazio.

Questo metodo aumenta la dimensione del contenitore di uno.

Dichiarazione

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

C ++ 11

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

Parametri

  • position - Indice nel contenitore 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 :: vector :: emplace ().

#include <iostream>
#include <vector>

using namespace std;

int main(void) {
   vector<int> v = {1, 2, 5};

   /* insert element at index 3 */
   auto it = v.emplace(v.begin() + 2, 4);

   /* insert element at index 2 */
   v.emplace(it, 3);

   for (auto it = v.begin(); it != v.end(); ++it)
      cout << *it << endl;

   return 0;
}

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

1
2
3
4
5