std::seed_seq
來自 cppreference.com
定義於標頭檔案 <random> |
||
class seed_seq; |
(C++11 起) | |
std::seed_seq
消耗一個整數值序列資料,並根據消耗的資料生成所需數量的32位無符號整數值。即使消耗的值接近,生成的值也會分佈在整個32位範圍內。
它提供了一種方式,在給定少量種子或分佈不佳的初始種子序列的情況下,為大量隨機數引擎播種,或為需要大量熵的生成器播種。
std::seed_seq
滿足 SeedSequence 的要求。
目錄 |
[編輯] 巢狀型別
型別 | 定義 |
result_type
|
std::uint_least32_t |
[編輯] 資料成員
成員 | 描述 |
std::vector<result_type> v |
底層種子序列 (僅用於闡釋的成員物件*) |
[編輯] 成員函式
構造並播種 std::seed_seq 物件(公開成員函式) | |
operator= [已刪除] |
std::seed_seq 不可賦值(公開成員函式) |
計算經偏置消除、均勻分佈的32位值 (公開成員函式) | |
獲取儲存的32位值的數量 (公開成員函式) | |
複製所有儲存的32位值 (公開成員函式) |
[編輯] 示例
執行此程式碼
#include <cstdint> #include <iostream> #include <random> 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