25

std::vectorとの違いは何std::stackですか?

明らかに、ベクターはコレクション内のアイテムを削除できますが(リストよりもはるかに低速ですが)、スタックはLIFOのみのコレクションとして構築されます。

ただし、最終品目の操作ではスタックの方が高速ですか?リンクリストですか、それとも動的に再割り当てされた配列ですか?

スタックに関する多くの情報を見つけることができませんが、それらを正しく描写している場合(実際のスレッドスタックに似ています。プッシュ、ポップなど、その方法とともにtop())、ウィンドウスタック管理に最適のようです。

4

1 に答える 1

50

Astackはコンテナではありません。コンテナアダプタです。vector、または同様のコンテナがdequeあり、実際に要素を保持するメンバーとして格納されます。覚えておいてください:それは次のように宣言されています:

template<
    class T,
    class Container = std::deque<T>
> class stack;

ユーザーインターフェイスをこのstack内部コンテナーに制限するだけです。操作のパフォーマンス特性は、基礎となるコンテナのパフォーマンス特性とまったく同じです。

于 2012-09-18T23:25:18.777 に答える