GeezerVison is showing cpprefjp.github.io — std::stack - cpprefjp C++日本語リファレンス
最終更新日時:
2026年09月30日 11時08分16秒 (JST)
Akira Takahashi
が更新
履歴
編集
class template
<stack>
std:: stack
namespace std {
template < class T , class Container = deque < T >>
class stack ;
}
概要
stack はコンテナアダプタであり、LIFO (last-in first-out) の動作――コンテナの一方から要素が挿入され、挿入された側から要素を取り出す――を実現する目的で設計されている。要素をコンテナの back() 側から挿入し、同じく back() 側から取り出す。
stack は、所定のメンバ関数を持つコンテナのオブジェクトを内部実装として用いており、標準のコンテナ、もしくは独自に実装したコンテナを指定することができる。
このコンテナに必要な要件は、以下のメンバ関数を持つことである。
back()
push_back()
pop_back()
emplace_back() (C++11)
この要件を満たすものとしては vector 、deque 、list があり、デフォルトでは deque が使用される。
stack は2つのテンプレートパラメータを持つ。各テンプレートパラメータの意味は以下の通りである。
T: 格納される要素の型
Container: 要素へのアクセス・保存に用いる内部実装のコンテナクラス
概念・前提知識
適格要件
TがContainer::value_typeと同じ型であること。
メンバ関数
protectedメンバ変数
変数名
型
対応バージョン
c
Container
メンバ型
名前
説明
対応バージョン
container_type
Container
value_type
Container::value_type
size_type
Container::size_type
reference
Container::reference
C++11
const_reference
Container::const_reference
C++11
非メンバ関数
推論補助
例
出力
3 2 1
参照