Ich suche nach einer Datenstruktur, die sein ältestes / letztes Element herausdrückt, wenn ein neues Element eingefügt wird. Stellen Sie beispielsweise Ddie Struktur dar. DEnthält 3 Elemente, werden die Number DStandardwerte des Typs auf 1, 2und initialisiert 3.
Wenn ein Number, der den Wert enthält, 5eingefügt wird D, 3wird herausgedrückt, während 1und 2nach rechts verschoben werden.
Das erste, was mir einfällt, ist ein Array, aber die Definition beinhaltet nicht das Push-Verhalten.
void push_replace(T val) { pop(); push(val); }.
T push_replace(T val) { T old = pop(); push(val); return old; }
pop()aufgrund von Problemen mit dem Stack-Abwickeln im Falle von Ausnahmen, die ein komplexes Objekt auskopieren, nichts zurückgegeben wird. Sie sollten es also front()vorher verwenden, wenn Sie es vor dem Verwerfen benötigen. Aber sicher, wenn Sie sich nicht für Ausnahmen interessieren, kann Ihr Weg besser sein.