名前空間
変種
操作

std::stack

提供: cppreference.com
< cpp‎ | container
ヘッダ <stack> で定義
template<

    class T,
    class Container = std::deque<T>

> class stack;

std::stack クラスはスタックの機能 - 特に LIFO (後入れ先出し) のデータ構造を提供するコンテナアダプタです。

このクラステンプレートはベースとなるコンテナのラッパーとして振る舞います - 関数の特定の集合のみが提供されます。 stack はベースとなるコンテナの末尾へ要素をプッシュし、末尾から要素をポップします。 すなわち末尾がスタックトップになります。

目次

[編集] テンプレート引数

T - 格納される要素の型。 TContainer::value_type が同じ型でない場合、動作は未定義です。 (C++17およびそれ以降)
Container - 要素を格納するために使用するベースとなるコンテナの型。 このコンテナは SequenceContainer の要件を満たさなければなりません。 さらに、通常のセマンティクスを持つ以下の関数を提供していなければなりません。
  • back()
  • push_back()
  • pop_back()

標準のコンテナ std::vector, std::deque, std::list はこれらの要件を満たします。 デフォルトでは、特定の stack クラスの実体化に対してコンテナクラスが指定されない場合、標準のコンテナ std::deque が使用されます。

[編集] メンバ型

メンバ型 定義
container_type Container [edit]
value_type Container::value_type [edit]
size_type Container::size_type [edit]
reference Container::reference [edit]
const_reference Container::const_reference [edit]

[編集] メンバ関数

stack を構築します
(パブリックメンバ関数) [edit]
stack を破棄します
(パブリックメンバ関数) [edit]
コンテナアダプタに値を代入します
(パブリックメンバ関数) [edit]
要素アクセス
トップの要素にアクセスします
(パブリックメンバ関数) [edit]
容量
ベースとなるコンテナが空かどうか調べます
(パブリックメンバ関数) [edit]
要素数を返します
(パブリックメンバ関数) [edit]
変更
要素をトップに挿入します
(パブリックメンバ関数) [edit]
(C++11)
要素をトップにその場で構築します
(パブリックメンバ関数) [edit]
トップの要素を削除します
(パブリックメンバ関数) [edit]
内容を入れ替えます
(パブリックメンバ関数) [edit]

メンバオブジェクト

Container c
ベースとなるコンテナ
(プロテクテッドメンバオブジェクト) [edit]

[編集] 非メンバ関数

stack 内の値を辞書的に比較します
(関数テンプレート) [edit]
std::swap アルゴリズムの特殊化
(関数テンプレート) [edit]

[編集] ヘルパークラス

std::uses_allocator 型特性の特殊化
(関数テンプレート) [edit]

[編集] 推定ガイド(C++17およびそれ以降)