公共成員函式
<random>
void discard (unsigned long long z);
Advance internal state (推進內部狀態)
將內部狀態推進 z 個刻度,如同呼叫 operator() z 次,但在此過程中不生成任何數字。
狀態序列的效果與應用轉換演算法的次數與後續元素推進的刻度數相同,每次用從base引擎獲得的新值替換內部表的元素。
引數
- z
- Number of equivalent advances. (等效推進的次數。)
示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
// shuffle_order_engine::discard
#include <iostream>
#include <chrono>
#include <random>
int main ()
{
// obtain a seed from the system clock:
unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
// knuth_b is a standard shuffle_order_engine type:
std::knuth_b generator (seed);
std::cout << "Random value: " << generator() << std::endl;
generator.discard(generator.table_size);
std::cout << "Random value: " << generator() << std::endl;
return 0;
}
|
可能的輸出
Random value: 484547135
Random value: 1532202078
|
複雜度
Linear in z. (與z呈線性關係。)