Was sind stacks verwendet? Warum sind Sie in C++?
Ich habe die Beurteilung von C++ mit dem Buch Praktische C++ - Programmierung, und kam über diese Dinge genannt Stapeln. Definiert in dem Buch, es ist definiert als ein Algorithmus für die Speicherung der Daten.
Was ich gesehen habe, in dem Buch, es sieht viel wie die Montage...ich erinnere mich auch etwas zu Lesen über etwas, das ist 16 bit.
Also meine Frage: Was sind stacks verwendet werden, sind Sie immer noch nützlich oder ist es eine alte Methode, etwas zu tun, was getan werden kann, dass mehr einfach und effizient mit der 32/64-bit-Computer? Ich bin nur wirklich verwirrt darüber, was Zweck-stacks dienen.
Edit: Da meine Frage ist so vage, werde ich formuliere es... Was ist ein stack, und Wann sollte es verwendet werden.
- Es ist eine Daten-Struktur ist, und nicht ein Algorithmus.
- Das hat nichts zu tun mit 16/32/64 bit, wenn Sie eine bestimmte datastructure Sie es brauchen, egal wie viel bit du hast.
- Warum ist dieser attackiert mit downvotes...
- Ich dachte nur das gleiche. was ist der Schaden in Frage stellen?
- Wahrscheinlich, weil jeder denkt, es ist trolling, wenn ein Programmierer behauptet, nicht zu wissen, was ein stack ist.
- Es ist schwer zu sagen, was hier gefragt. Diese Frage ist mehrdeutig, unklar, unvollständig, zu breit, oder der rhetorischen und nicht sinnvoll zu beantworten, die in seiner aktuellen form.
- das ist das Ding... das Buch ist mehrdeutig und vage. Ich verlange eine Erklärung, was zum Teufel ist es...
- was hat das mit Apple zu tun?
- Der downvote-Taste, erwähnt auch "nicht zeigen, jede Forschung", das könnte ein weiterer Grund sein.
- Ich recherchierte Buch. Lesen Sie das Kapitel mehr als einmal. Ich bin verwirrt, und dachte, ich würde Fragen, für professionelle Programmierer Meinungen. Denke, ich sollte nicht danach Fragen, Fragen wie diese.
- Aber haben Sie auch versucht google? Wikipedia? Stack overflow? Sie auch nicht beachten Sie die details, was genau du nicht verstehst. (Keine Angst: Jeder Programmierer fängt klein an und wir alle hatten Probleme mit dem, was wir jetzt als so trivial, dass wir aufgehört haben, darüber zu reden, vor langer Zeit ;))
- Eigentlich wollte ich schauen, stackoverflow, habe nichts gefunden, erklären die Grundlagen von einem Stapel. Also ich dachte, ich würde bitten, die Frage, die würde dienen auch als zukünftige Referenz für neue Programmierer suchen, auf Stapel.
- en.wikipedia.org/wiki/Stack_(abstract_data_type)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hängt davon ab, welche Stapel Sie sprechen.Das erste ist ein Speicherort im Arbeitsspeicher.Ein stack ist ein last-in-first-out-Datenstruktur, die ist immer noch sehr nützlich, unabhängig davon, 16/32/64 bit-Computer.
Wie schon andere gesagt haben, den call-stack (oder "Stapel") ist ein Beispiel für eine Stack in Aktion.
Stapel nicht eine Methode, sondern eine Datenstruktur, last-in-first-out (LIFO).
In C++
std::stack<>
ist eine Klasse Vorlage, deren Daten können beliebigen Typs. Es gibt viele Situationen, in denen die last in, first out ist genau das, was Sie brauchen.Ein Beispiel sind virtuelle Maschinen oder Dolmetscher, die Nutzung eines stack-Architektur zum speichern des Betriebszustand während der Ausführung von Funktionen/Prozeduren. Betrachten Sie die folgenden interpreter einer Sprache, wo sub-Prozeduren können nicht ändern der Zustand des Aufrufers:
Wikipedia hat weitere Beispiele für die Verwendung der stack-Datenstrukturen. Einige Sortier-Probleme gelöst sind, relativ leicht zu stapeln.
Wie bei allen Daten-Strukturen und C++ hat auch einiges von Ihnen (Listen, Warteschlangen, setzt, maps (eine.k.ein. assoziative arrays, ein.k.ein. Wörterbücher), arrays/Vektoren, und mehr), können Sie nicht brauchen Sie jetzt, und vielleicht nicht einmal in 2 Jahren, aber Sie sollten wissen, über Sie, Ihre Eigenschaften, Vorteile, Nachteile, und wenn es ist der richtige moment, um Sie zu benutzen.
Im wesentlichen, Sie werden verwendet, wenn Sie brauchen, um Daten zu speichern in einer LIFO (Last-In-First-Out) Mode. Finden Sie Informationen hier.
Arbeiten auf einem 16/32/64/whatever bit Architektur hat nichts zu tun mit dem Prinzip eines stack.
Könnten Sie verwenden einen stack, im Fall von standard-LIFO-Logik. Es gibt eine Menge von Problemen erforderlich, dass die LIFO-Logik.