0

私がやろうとしているのは、最初の要素を取得し、評価してから削除するリーダー クラスを作成することです。つまり、アイテムは後ろではなく前に追加する必要があります。

これが私がしなければならないことです。疑似コード。

void Add( int messageCode ){ if(m_pList && messageCode!=0xFF)m_pList->push_front(messageCode);  } // Adding a message; Added check if input is 0xFF.

それ以外の

void Add( int messageCode ){ if(m_pList && messageCode!=0xFF)m_pList->push_back(messageCode);  } // Adding a message; Added check if input is 0xFF.
4

3 に答える 3

4

FIFO が必要な場合は、クラスとそのメソッド (またはstd::dequeなど) を参照してください。push_frontemplace_front

LIFO が必要な場合は、std::stackclass を参照してください。

于 2011-10-08T22:35:07.943 に答える
2

2つのこと。

std::deque機能を持っていpush_frontます。pop_front取り除く機能もあります。確かに、前面からの素早い挿入/取り外しは、 のポイントの半分ですdeque

もう 1 つは次のとおりです。とにかく、なぜ前面からプッシュ/ポップしたいのですか? 後ろへのプッシュ/ポップに何か問題がありますか? 、、およびstd::vectorを使用するだけで、通常のスタックのように使用できます。前に押すのとほとんど同じです。何らかの方法でフロント以外の要素にアクセスする必要がない限り、これはこれを処理する完全に正当な方法のようです。push_backpop_backback

于 2011-10-08T22:38:32.620 に答える
0

デキューにはpush_front があるので、トピックで言及されているベクトルを考慮したソリューションに興味があると思います。dequeue内でも使用できるinsert関数を使用できます。しかし、API で述べたように、これは効率的ではない可能性があります。この要素を削除するには、両方で提供されている消去機能も使用できます。

于 2011-10-08T22:42:22.307 に答える