◐ Shell
clean mode source ↗

std::seed_seq - cppreference.com

提供: cppreference.com

<tbody> </tbody>

class seed_seq;

(C++11以上)

std::seed_seq は一連の整数値データを消費し、その消費したデータを基にして要求された個数の符号なし整数値 i (0 ≤ i < 232
) を生成します。 生成される値は、消費された値が近くても、32ビットの範囲全体に渡って分布されます。

これは、小さなシード、または不十分に分布されている初期シードシーケンスから、乱数エンジンの大きな数をシードするための、または大きなエントロピーを要求するジェネレータをシードするための方法を提供します。

std::seed_seqSeedSequence の要件をすべて満たします。

メンバ型

メンバ型 定義
result_type std::uint_least32_t

メンバ関数

std::seed_seq オブジェクトを構築してシードします
(パブリックメンバ関数)
コピー代入可能ではありません
(パブリックメンバ関数)
バイアスが除去された、均等に分布する32ビット値を計算します
(パブリックメンバ関数)
std::seed_seq に格納されている32ビット値の数を取得します
(パブリックメンバ関数)
std::seed_seq に格納されている32ビット値を取得します
(パブリックメンバ関数)

#include <random>
#include <cstdint>
#include <iostream>

int main()
{
    std::seed_seq seq{1,2,3,4,5};
    std::vector<std::uint32_t> seeds(10);
    seq.generate(seeds.begin(), seeds.end());
    for (std::uint32_t n : seeds) {
        std::cout << n << '\n';
    }
}

出力:

4204997637
4246533866
1856049002
1129615051
690460811
1075771511
46783058
3904109078
1534123438
1495905678