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

履歴 編集

function
<unordered_set>

# std::unordered_set::empty(C++11)

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

## 概要

コンテナが空かどうかを判定する。

## 戻り値

コンテナが空であれば `true`、そうでなければ `false` を返す。

## 例外

投げない。

## 計算量

定数

## 例

    #include <iostream>
    #include <unordered_set>

    int main()
    {
      std::cout << std::boolalpha;

      std::unordered_set<int> us;

      // 空
      std::cout << us.empty() << std::endl;

      us.insert(1);

      // 空ではない
      std::cout << us.empty() << std::endl;

      us.clear();

      // 空
      std::cout << us.empty() << std::endl;
    }

### 出力

    true
    false
    true

## バージョン

### 言語

- C++11

### 処理系

- Clang: 3.0 ✅, 3.1 ✅
- GCC: 4.4.7 ✅, 4.5.3 ✅, 4.6.3 ✅, 4.7.0 ✅
- ICC: ?
- Visual C++: ?

## 実装例

    template <class Key, class Hash, class Pred, class Allocator>
    inline bool unordered_set<Key, Hash, Pred, Allocator>::empty() const noexcept {
      return size() == 0; // begin() == end() でも OK
    }

## 関連項目

名前 | 説明
--- | ---
`size` | 要素数の取得
`max_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