Yeni bir öğe eklenirse en eski / son öğe dışarı itecek bir veri yapısı arıyorum. Örneğin D, yapıyı temsil edelim . Dtürünün Number Dvarsayılan öğelerinin 3 öğesini içerir 1, 2ve 3.
Bir Eğer Numberdeğer içeren 5sokulur D, 3dışarı itilecek sırasında 1ve 2hemen 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.