Saya mencari struktur data yang akan mendorong keluar elemen terlama / terakhir jika elemen baru dimasukkan. Sebagai contoh, biarkan D
mewakili struktur. D
berisi 3 elemen dari Number
D
nilai default tipe akan diinisialisasi ke 1, 2
dan 3
.
Jika a Number
yang berisi nilai 5
dimasukkan ke dalam D
, 3
akan didorong keluar, sementara 1
dan 2
digeser ke kanan.
Hal pertama yang terlintas dalam pikiran adalah array, tetapi definisi tersebut tidak termasuk perilaku mendorong.
void push_replace(T val) { pop(); push(val); }
.
T push_replace(T val) { T old = pop(); push(val); return old; }
pop()
tidak mengembalikan apa pun karena masalah dengan stack unwinding dalam kasus pengecualian menyalin objek yang kompleks, jadi Anda seharusnya menggunakannya front()
sebelum jika Anda membutuhkannya sebelum membuang. Tapi tentu saja, jika Anda tidak peduli tentang pengecualian, jalan Anda bisa lebih baik.