Unique generator for integral ranges.
More...
|
| | unique_range (T l, T r) |
| | Creates unique generator for values in given range.
|
| T | size () const |
| | Returns the number of values left to generate.
|
| T | gen () |
| | Generates a unique random value in the defined range.
|
| auto | gen_list (int size) |
| | Generates a list of several unique values.
|
| auto | gen_all () |
| | Generates all unique values left to generate.
|
template<typename T>
struct tgen::unique_range< T >
Unique generator for integral ranges.
Examples
std::cout << u.gen() << " " << u.gen() << " " << u.gen() << std::endl;
Unique generator for integral ranges.
Definition at line 743 of file tgen.h.
◆ unique_range()
Creates unique 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 749 of file tgen.h.
◆ gen()
Generates a unique 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 756 of file tgen.h.
◆ gen_all()
Generates all unique values left to generate.
- Returns
- A uniformly random tgen::sequence::instance with all unique values from the range that have not been generated yet.
Complexity
The same as calling unique_range::gen until there are no more unique values.
Examples
auto gen_all()
Generates all unique values left to generate.
Definition at line 783 of file tgen.h.
◆ gen_list()
Generates a list of several unique values.
- Returns
- A uniformly random tgen::sequence::instance with size unique values from the range.
- Exceptions
-
| std::runtime_error | if there are not enough values to generate. |
Complexity
The same as size calls to unique_range::gen.
Examples
auto gen_list(int size)
Generates a list of several unique values.
Definition at line 774 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 752 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