public member function
<random>

std::shuffle_order_engine::discard

void discard (unsigned long long z);
Advance internal state
Advances the internal state by z notches, as if operator() was called z times, but without generating any numbers in the process.

The effects on the state sequence are the same as if the transition algorithm was applied as many times as notches advanced on subsequent elements, each time replacing an element of the internal table by a new value obtained from the base engine.

Parameters

z
Number of equivalent advances.

Return value

None

Example

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;
}

Possible output:
Random value: 484547135
Random value: 1532202078


Complexity

Linear in z.

See also