Yeni bir öğe eklenirse en eski / son öğe dışarı itecek bir veri yapısı arıyorum. Örneğin D
, yapıyı temsil edelim . D
türünün Number
D
varsayılan öğelerinin 3 öğesini içerir 1, 2
ve 3
.
Bir Eğer Number
değer içeren 5
sokulur D
, 3
dışarı itilecek sırasında 1
ve 2
hemen kaydırılır.
Akla ilk gelen şey bir dizi olacaktır, ancak tanım itme davranışını içermez.
Peki dahili veri yapısı yok ama iki katına bağlantılı liste bağlantılı liste kullanarak uygulamak basit mi?
—
Kullanıcı Bulunamadı
Bir kuyruktan devralma sarmalayıcı kullanmaya ne dersiniz? Sonra yöntemi ekleyin
—
Francesco Dondi
void push_replace(T val) { pop(); push(val); }
.
@FrancescoDondi muhtemelen olmalı
—
valbaca
T push_replace(T val) { T old = pop(); push(val); return old; }
Şimdi kesinlikle var: sadece gayri resmi olarak tanımladınız; belki de tanınmış olup olmadığını, genel olarak kabul edilmiş bir arayüze sahip olup olmadığını ve uygulamaların mevcut olup olmadığını sormalısınız (sonuncusu büyük bir sorun değildir).
—
PJTraill
@valbaca Ben
—
Francesco Dondi
pop()
karmaşık bir nesneyi kopyalama istisnaları durumunda yığın gevşeme ile ilgili sorunlar nedeniyle hiçbir şey döndürür C ++ düşünüyorum , bu yüzden front()
atmadan önce ihtiyacınız varsa daha önce kullanmanız gerekiyor . Ancak, istisnaları umursamıyorsanız, yolunuz daha iyi olabilir.