C++, rekurzió, visszatérési érték [megoldva]

Fórumok

A probléma a következő: van egy függvény, aminek egy vektor a visszatérési értéke:


vector<string> fuggveny (string input)
{
  vector<string> visszateres;

  //Dolgok, visszateres.push_back("valami");

  return visszateres;
}

Ezzel eddig nincs is gond, de a függvény bizonyos esetekben meghívja önmagát. És ilyenkor újra létrehozza

vector<string> visszateres

-t, és visszatéréskor csak az utolsó futás eredménye lesz benne.

A kérdés: hogy lehetne, hogy minden hozzáadott elem megmaradjon a vektorban, és a függvény ezzel térjen vissza?

Hozzászólások

Ha jol ertem a "

//Dolgok

" kozott vannak hivasok onmagara. Mi lenne, ha nem lokalis valtozoban gyujtened ossze a sztringeket? Parameterkent adnad at a "

visszateres

"-t, oda gyujtened oket. "

void fuggveny (vector<string>& visszateres, string input)

"

Legalább még azt a kódot beírhattad volna még, hogy hogyan hívja rekurzívan önmagát, és mit csinál önmaga visszatérési értékével...

1.
static vector visszateres;
De ekkor nem torlodik a visszateres, kov hivaskor bajaid lehetnek.

2. nem a fugvenyben deklaralod.

3. fugvenynek argumentumava teszed a visszaterest, mint referencia
Ha ragszkodsz az egy argumentumhoz, akkor az egy argumentumos hivja a ket argumentumosat, es ket argumentumos is a ketargumentumosat

4. ird meg nem rekurziva, ritkan eri meg rekurziv fugvenyeket hasznalni.