2012-04-29 16 views
0

質問がありますが、検索する方法がわからないので、質問したいと思います。 シンプルだと思うかもしれませんが、私は一種の初心者です。配列の要素を更新する(新しい要素が配列に入った後で最も古い要素が削除されます)

私はC++でコーディングしています。私は配列に20個の値を持っています。私はそれらについていくつかの作業を行い、計算後、これらの20の値に新しい値を追加し、最も古い変数を削除する必要があります。新しい値で配列を更新する一種。例えば

: 私の前の値:A、B、C、D、...
私の現在の値T:A、B、C、D、E ... U

このプロセスであろう条件が満たされない限り、ループの下で続行します。

私の質問です:このタスクを実行するための具体的な構造や方法はありますか、この作業を手動で処理する必要はありますか? (実際には、私にとっては十分ではない非実用的な方法を書いて、それを行うことができますが、私はこの作品のために専用のスタック構造がないとは思わない)

ありがとうございます。

+3

は 'のstd :: queue'はFIFOオペレーションのために設計されています。 – chris

+0

「キュー」を使用することに同意します。 – EdChum

+1

「私はそれらの上で仕事をします」 - すべての要素にアクセスする必要がありますか?その場合、キューを(効果的に)使用することはできません。最良の選択肢は 'std :: deque'です。 –

答えて

3

使用std::queue又はstd::deque(差両端キューが両側から要素を削除することができたとき、そのキューはFIFO(先入れ先出し)である):

if (queue.size() == MAX_SIZE) { 
    queue.pop_front(); 
} 
queue.push_back(value); 
+0

デュークはヒープのようですか?どういう意味ですか? –

+0

マイ・ポストを更新しました。確実なキューは、ヒープがFILOの概念を表現するときにFIFO概念を実装します。 –

+0

それはあなたが考えているスタックです。ヒープでは、オブジェクトは挿入された順序ではなく、その値に基づいて出力されます。 –

関連する問題