RandX 1.4.3
基于 xoshiro/xoroshiro 算法族的纯头文件伪随机数生成器库
载入中...
搜索中...
未找到
RandX::ranges 命名空间参考

函数

template<std::ranges::input_range R>
requires std::ranges::sized_range<R> || std::ranges::forward_range<R>
std::ranges::range_value_t< R > RandElement (R &&r)
 随机选取一个元素(返回值拷贝,非迭代器)
template<std::ranges::input_range R>
std::vector< std::ranges::range_value_t< R > > RandSample (R &&r, std::ranges::range_difference_t< R > n)
 无放回抽样(复用迭代器版实现,自动选择 random_access / input 路径)
template<std::ranges::random_access_range R>
requires std::ranges::sized_range<R>
void RandShuffle (R &&r)
 随机打乱 range(要求 random_access + sized)
template<class T, std::ranges::output_range< const T & > R>
void RandFill (R &&r, T min, T max)
 用随机数填充 range

函数说明

◆ RandElement()

template<std::ranges::input_range R>
requires std::ranges::sized_range<R> || std::ranges::forward_range<R>
std::ranges::range_value_t< R > RandX::ranges::RandElement ( R && r)
inlinenodiscard

随机选取一个元素(返回值拷贝,非迭代器)

参数
r源 range(需满足 sized_range 或 forward_range)
返回
随机选取的元素值拷贝
注解
语义差异:迭代器版返回迭代器(可修改原元素),ranges 版返回值拷贝
函数调用图:

◆ RandFill()

template<class T, std::ranges::output_range< const T & > R>
void RandX::ranges::RandFill ( R && r,
T min,
T max )
inline

用随机数填充 range

参数
r目标 range
min随机数下界
max随机数上界
注解
T 从 min/max 推导:RandFill(v, 0, 99) -> T=int; RandFill(v, 0.0, 1.0) -> T=double
函数调用图:

◆ RandSample()

template<std::ranges::input_range R>
std::vector< std::ranges::range_value_t< R > > RandX::ranges::RandSample ( R && r,
std::ranges::range_difference_t< R > n )
inlinenodiscard

无放回抽样(复用迭代器版实现,自动选择 random_access / input 路径)

参数
r源 range
n抽取数量
返回
含 n 个随机选取元素的 vector
函数调用图:

◆ RandShuffle()

template<std::ranges::random_access_range R>
requires std::ranges::sized_range<R>
void RandX::ranges::RandShuffle ( R && r)
inline

随机打乱 range(要求 random_access + sized)

参数
r待打乱的 range
函数调用图: