Biblioteca de vectores de C ++ - función emplace ()

Descripción

La función C ++ std::vector::emplace()extiende el contenedor insertando un nuevo elemento en su posición . La reasignación ocurre si se necesita más espacio.

Este método aumenta el tamaño del contenedor en uno.

Declaración

A continuación se muestra la declaración de la función std :: vector :: emplace () del encabezado std :: vector.

C ++ 11

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

Parámetros

  • position - Índice en el contenedor donde se insertará el nuevo elemento.

  • args - Argumentos enviados para construir el nuevo elemento.

Valor devuelto

Devuelve un iterador de acceso aleatorio que apunta al elemento recién emplazado.

Excepciones

Si la reasignación falla, se lanza la excepción bad_alloc .

Complejidad del tiempo

Lineal, es decir, O (n)

Ejemplo

El siguiente ejemplo muestra el uso de la función 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;
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

1
2
3
4
5