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