最終更新日時: 2026年02月17日 23時22分33秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<stack>

# std::stack::empty

    bool empty() const;               // (1) C++03
    [[nodiscard]] bool empty() const; // (1) C++20
    constexpr bool empty() const;     // (1) C++26

## 概要

`stack` が空か否か、つまり要素数が 0 か否かを返す。

内部のコンテナの `empty()` メンバ関数を呼ぶ。

## 戻り値

要素数が 0 の場合は `true`、それ以外の場合は `false` 。

## 計算量

定数時間 O(1)。

## 例

    #include <iostream>
    #include <stack>

    int main()
    {
      std::stack<int> st;

      // 空なら "empty", そうでなければ "not empty" と表示する
      if (st.empty()) {
        std::cout << "empty" << std::endl;
      } else {
        std::cout << "not empty" << std::endl;
      }

      // 要素を追加
      st.push(1);

      // 空なら "empty", そうでなければ "not empty" と表示する
      if (st.empty()) {
        std::cout << "empty" << std::endl;
      } else {
        std::cout << "not empty" << std::endl;
      }
    }

### 出力

    empty
    not empty

## 実装例

    bool empty() const { return c.empty(); }

## 関連項目

名前 | 説明
--- | ---
`size` | 要素数を返す

## 参照

- P0600R1 `[[nodiscard]]` in the Library
  - C++20で`[[nodiscard]]`が付加された
- P2422R1 Remove `nodiscard` annotations from the standard library specification
  - C++26で`[[nodiscard]]`指定が削除された
- P3372R3 constexpr containers and adaptors