Concatenar vectores con std::vector en C++

publicado por: Anonymous

Quería saber como se podría concatenar dos arreglos en C++:

Por ejemplo

a = {1,2,3,4,5} 
b = {6,7,8,9,10}
c = a + b
//El resultado c = {1,2,3,4,5,6,7,8,9,10} 

solución

Para concatenar esos dos arrays en un vector te bastan dos simples líneas de código:

std::vector<int> c(std::begin(a),std::end(a));
c.insert(c.end(),std::begin(b),std::end(b));

La primera crea el vector c y copia en el mismo el contenido del array a. La segunda simplemente añade al vector c el contenido del array b.

Si, por algun casual, quisieses hacerlo en otro array te toca recurrir al uso de memoria dinámica:

int size_a = std::distance(std::begin(a),std::end(a));
int size_b = std::distance(std::begin(b),std::end(b));
int* c = new int[size_a + size_b];

int* iter = std::copy(std::begin(a),std::end(a),c);
std::copy(std::begin(b),std::end(b),iter);
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *