Quick Hintergrund
Ich bin ein Java-Entwickler, der in meiner freien/gelangweilten Zeit herum mit C++ gespielt hat.Warum sollte pop() ein Argument nehmen?
Vorwort
In C++, Sie oft pop sehen ein Argument durch Verweis unter:
void pop(Item& removed);
Ich verstehe, dass es schön ist der Parameter mit auf "ausfüllen", was Sie entfernt. Das macht total Sinn für mich. Auf diese Weise kann sich die Person, die das oberste Element entfernen möchte, ansehen, was entfernt wurde.
Allerdings, wenn ich dies in Java tun, würde ich so etwas tun:
Item pop() throws StackException;
diese Weise nach dem Knall wir entweder zurück: NULL als Ergebnis eines Artikel oder einem Ausnahme würde ausgelöst werden.
Mein C++ - Lehrbuch zeigt mir das obige Beispiel, aber ich sehe viele Stapelimplementierungen, die keine Argumente annehmen (stl stack zum Beispiel).
Die Frage
Wie man die Pop-Funktion in C++ implementieren sollte?
Der Bonus
Warum?
Awesome Links, vielen Dank. Also, wenn ich in einem Interview gebeten werde, pop() in C++ zu implementieren ... sollte ich ihnen Ihre Antwort geben? : p – Stephano
+ 1 ... aber vielleicht "wenn Sie die Pop-Funktion in C++ implementieren, sollten Sie die Standard-Container-Schnittstelle folgen." – Potatoswatter
@Stephano: Hängt davon ab, was der Interviewer will. Einige können davon überzeugt sein, dass Sie über 'std :: stack 'Bescheid wissen und wissen, dass es' push', 'top' und' pop' Methoden hat. Einige möchten vielleicht, dass Sie Ihren eigenen Stack mit einem Array fester Länge implementieren, nur um zu sehen, ob Sie es können. – Dan