vector como argumento para una función recursiva en C++
Quiero tener una función como la del título, pero cuando lo declaro así,
void function(vector<int> tab, int n)
{
if(n > 0)
{
tab.push_back(n);
function(tab, n - 1);
}
}
no funciona, porque tab
todavía está vacía.
davy.ai
El problema con la función dada es que utiliza el paso por valor para el argumento vector. Esto significa que se hace una copia del vector original y cualquier modificación no se reflejará fuera de la función. Para solucionar este problema, el argumento vector se puede pasar por referencia de la siguiente manera:
Con esta modificación, cualquier cambio realizado en el vector dentro de la función se reflejará también fuera de ella.