Distinct generator for integral ranges.
More...
|
| | distinct_range (T l, T r) |
| | Creates distinct generator for values in given range.
|
| T | size () const |
| | Returns the number of values left to generate.
|
| T | gen () |
| | Generates a distinct random value in the defined range.
|
| auto | gen_list (int size) |
| | Generates a list of several distinct values.
|
| auto | gen_all () |
| | Generates all distinct values left to generate.
|
template<typename T>
struct tgen::distinct_range< T >
Distinct generator for integral ranges.
Examples
std::cout << u.gen() << " " << u.gen() << " " << u.gen() << std::endl;
Distinct generator for integral ranges.
Definition at line 788 of file tgen.h.
◆ distinct_range()
Creates distinct generator for values in given range.
- Parameters
-
| l | Left endpoint of the range. |
| r | Right endpoint of the range. |
The generator will generate values in [l, r].
Examples
Definition at line 794 of file tgen.h.
◆ gen()
Generates a distinct random value in the defined range.
- Returns
- A value in the given range that has not been generated before, uniformly at random.
- Exceptions
-
| std::runtime_error | if there no more values to generate. |
Complexity
O(log(n)) for the n-th call of gen.
Examples
std::cout << u.gen() << " " << u.gen() << " " << u.gen() << std::endl;
Definition at line 801 of file tgen.h.
◆ gen_all()
Generates all distinct values left to generate.
- Returns
- A uniformly random tgen::list::value with all distinct values from the range that have not been generated yet.
Complexity
The same as calling distinct_range::gen until there are no more distinct values.
Examples
auto gen_all()
Generates all distinct values left to generate.
Definition at line 828 of file tgen.h.
◆ gen_list()
Generates a list of several distinct values.
- Returns
- A uniformly random tgen::list::value with size distinct values from the range.
- Exceptions
-
| std::runtime_error | if there are not enough values to generate. |
Complexity
The same as size calls to distinct_range::gen.
Examples
auto gen_list(int size)
Generates a list of several distinct values.
Definition at line 819 of file tgen.h.
◆ size()
Returns the number of values left to generate.
- Returns
- The number of values left to generate.
Complexity
O(1).
Examples
u.gen(), u.gen();
std::cout << u.size() << std::endl;
Definition at line 797 of file tgen.h.
The documentation for this struct was generated from the following files:
- /home/runner/work/tgen/tgen/single_include/tgen.h
- base.dox