最終更新日時: 2025年07月12日 02時16分44秒 (JST)
Koichi Murase が更新

履歴 編集

function
<random>

# std::discard_block_engine::discard(C++11)

    void discard(unsigned long long z);

## 概要

指定した回数だけ乱数を生成し、内部状態を進める。

## 効果

`*this`を`e`とした場合、

    for (unsigned long long i = 0; i < z; ++i) {
      e();
    }

と同じ効果を持つ。

指定された回数だけ乱数生成を行い、結果を破棄する。

## 戻り値

なし

## 例

    #include <iostream>
    #include <random>

    int main()
    {
      std::ranlux24 engine;

      for (int i = 0; i < 5; ++i) {
        engine();
      }

      std::cout << engine() << std::endl;

      // エンジンを再初期化し、内部状態を5回進める
      // 上のコードで生成した乱数と同じ結果が得られる
      engine.seed();
      engine.discard(5);

      std::cout << engine() << std::endl;
    }

### 出力

    8584138
    8584138

## バージョン

### 言語

- C++11

### 処理系

- Clang: ??
- GCC: 4.7.2 ✅
- ICC: ??
- Visual C++: ??

## 参照