Wie kann C ++ den Fortsetzungsmodus verwenden?

8

Nehmen wir an, Sie machen in C ++ zu viele rekursive Aufrufe einer rekursiven Funktion und erhalten einen Stack-Überlauffehler.

Wie würden Sie dies in einem Fortsetzungsmodus umschreiben, um den Stack-Überlauf zu vermeiden?

Ich habe eine leichte Schwierigkeit, dies in C ++ darzustellen.

    
achow 27.10.2011, 22:53
quelle

1 Antwort

4

Nun, das ist eine ziemlich offene Frage, aber Eric Lippert schrieb eine (na ja zwei tatsächlich) eher lange Reihe über genau dieses Thema . Nicht gerade die richtige Sprache, aber es sollte noch ziemlich hilfreich sein und die allgemeine Idee geben.

Obwohl die Implementierung von CPS in C ++ sehr viel Arbeit erfordert, nur um eine einzelne rekursive Funktion zu reparieren, können Sie einfach einen Algorithmus verwenden, um die Funktion iterativ mit einer Warteschlange zu machen (Sie verwenden immer noch die gleiche Menge an Daten, aber die Heap ist viel weniger eingeschränkt).

    
Voo 27.10.2011 23:44
quelle