新しい要素が挿入された場合に最も古い/最後の要素をプッシュするデータ構造を探しています。たとえばD、構造を表します。Dタイプの3つの要素が含まNumber Dのデフォルト値に初期化される1, 2とし3。
場合にNumber値が含まれていることが5中に挿入されD、3押し出さされ、一方1及び2右にシフトされます。
最初に頭に浮かぶのは配列ですが、定義にはプッシュ動作が含まれていません。
さて、組み込みのデータ構造はありませんが、二重リンクリストを使用して簡単に実装できます。
—
ユーザーが見つかりません
キューから継承するラッパーを使用するのはどうですか?次に、メソッドを追加します
—
フランチェスコドンディ
void push_replace(T val) { pop(); push(val); }。
@FrancescoDondiはおそらく
—
バルバカ
T push_replace(T val) { T old = pop(); push(val); return old; }
今間違いなくあります:あなたは非公式にそれを定義しました。よく知られているかどうか、一般的に合意されたインターフェースを持っているかどうか、実装が利用できるかどうかを尋ねるべきでしょう(最後の問題が大きい問題ではない)。
—
PJTraill
@valbaca
—
フランチェスコドンディ
pop()複雑なオブジェクトをコピーする例外の場合、スタックの巻き戻しの問題のために何も返さないC ++を考えているので、front()破棄する前に必要な場合は前に使用することになっています。しかし、例外を気にしないのであれば、あなたのやり方はより良いものになるでしょう。