Szukam struktury danych, która wypchnie jej najstarszy / ostatni element, jeśli wstawiony zostanie nowy element. Na przykład niech Dreprezentuje strukturę. Dzawiera 3 elementy Number Dwartości domyślnych tego typu będą inicjowane do 1, 2i 3.
Jeśli Numberto zawiera wartość 5jest włożona D, 3zostanie wypchnięty, natomiast 1i 2są przesunięte w prawo.
Pierwszą rzeczą, która przychodzi na myśl, będzie tablica, ale definicja nie obejmuje zachowania polegającego na wypychaniu.
void push_replace(T val) { pop(); push(val); }.
T push_replace(T val) { T old = pop(); push(val); return old; }
pop()nic nie zwraca ze względu na problemy z rozwijaniem stosu w przypadku wyjątków kopiowania złożonego obiektu, więc powinieneś użyć go front()wcześniej, jeśli potrzebujesz go przed odrzuceniem. Ale oczywiście, jeśli nie przejmujesz się wyjątkami, Twoja droga może być lepsza.