STLキューにはfront()
とback()
メソッドがありますが、スタックには しかtop()
ありませんが、 はありませんbottom()
。どうしてこんなことに?
2 に答える
唯一の理由stack
は、ラップされたコンテナへのスタックとしてのアクセスを禁止することです。つまり、トップのみにアクセスすることです。スタックとして使用できるが、スタックとしてのみ動作するように制限されていないコンテナーが必要な場合は、 raw などの別のシーケンス コンテナーを使用できますvector
。
同様に、 の唯一の理由queue
は、ラップされたコンテナーへのキューとしてのアクセスを除いて、つまり、フロントとバックへのアクセスを禁止することです。キューとして使用できるが、キューとしてのみ機能するように制限されていないコンテナーが必要な場合は、 raw などの別のシーケンス コンテナーを使用できますvector
。
キューは通常、先入れ先出し (FIFO) バッファーを表します。両端にアクセスできます。一方の端には最新のアイテムがあり、もう一方の端には最も古いアイテムがあります。要素をキューに追加しているコードから最新のアイテムにアクセスし、キューからのアイテムを処理するコードから最も古いアイテムにアクセスしたい場合があります。
スタックは通常、後入れ先出し (LIFO) バッファーを表します。スタックに追加された最新のアイテムである一方の端にのみアクセスできます。したがって、top() のみが必要で、bottom() は必要ありません。