dl
dl::Each 命名空间参考

多对多遍历操作 更多...

函数

template<typename T, size_t N>
Array< T, NMin (const Array< T, N > &a, const Array< T, N > &b)
 取两者最小值为新元素
 
template<typename T, size_t N>
Array< T, NMax (const Array< T, N > &a, const Array< T, N > &b)
 取两者最大值为新元素
 
template<IsInteger T, size_t N>
void Limit (Array< T, N > &a, const Array< T, N > &min, const Array< T, N > &max)
 限制元素到 前闭后开区间(过大自动减1)
 
template<IsInteger T, size_t N>
Array< T, NLimit (const Array< T, N > &a, const Array< T, N > &min, const Array< T, N > &max)
 
template<typename T, size_t N>
constexpr bool Less (const Array< T, N > &a, const Array< T, N > &b)
 每个元素都小于返回真
 
template<IsReal T, size_t N>
Array< T, NLerp (const Array< T, N > &a, const Array< T, N > &b, T t)
 线性插值
 
template<typename T, size_t N, IsReal R>
Array< T, NLerp (const Array< T, N > &a, const Array< T, N > &b, R t, R(*func)(R))
 传入2个容器,对每个元素进行线性插值
 
template<typename T, size_t N>
Array< T, NFMod (const Array< T, N > &a, const Array< T, N > &b)
 浮点数求模
 
template<typename C0, typename C1, typename F>
bool Yes (const C0 &container0, const C1 &container1, F func)
 判断两个容器 每个元素都满足条件
 
template<typename C0, typename C1>
void Clone (C1 &tar, const C0 &src)
 克隆容器到另一个
 
template<typename C0, typename C1>
void Copy (C1 &tar, const C0 &src)
 复制容器
 

详细描述

多对多遍历操作

函数说明

◆ Clone()

template<typename C0, typename C1>
void dl::Each::Clone ( C1 & tar,
const C0 & src )

克隆容器到另一个

参数
[in]tar目标容器
[in]src源容器
注解
tar会调整至src大小

在文件 dl_range_each.h167 行定义.

◆ Copy()

template<typename C0, typename C1>
void dl::Each::Copy ( C1 & tar,
const C0 & src )

复制容器

参数
[in]tar目标容器
[in]src源容器
注解
tar不会修改大小

在文件 dl_range_each.h185 行定义.

◆ FMod()

template<typename T, size_t N>
Array< T, N > dl::Each::FMod ( const Array< T, N > & a,
const Array< T, N > & b )

浮点数求模

在文件 dl_range_each.h127 行定义.

◆ Lerp() [1/2]

template<typename T, size_t N, IsReal R>
Array< T, N > dl::Each::Lerp ( const Array< T, N > & a,
const Array< T, N > & b,
R t,
R(* func )(R) )

传入2个容器,对每个元素进行线性插值

参数
[in]a容器a
[in]b容器b
[in]t系数
[in]func对结果的操作(比如round)

在文件 dl_range_each.h113 行定义.

◆ Lerp() [2/2]

template<IsReal T, size_t N>
Array< T, N > dl::Each::Lerp ( const Array< T, N > & a,
const Array< T, N > & b,
T t )

线性插值

参数
[in]a容器a
[in]b容器b
[in]t系数

在文件 dl_range_each.h95 行定义.

◆ Less()

template<typename T, size_t N>
bool dl::Each::Less ( const Array< T, N > & a,
const Array< T, N > & b )
constexpr

每个元素都小于返回真

注解
类型长度一致,所以用array

在文件 dl_range_each.h79 行定义.

◆ Limit() [1/2]

template<IsInteger T, size_t N>
void dl::Each::Limit ( Array< T, N > & a,
const Array< T, N > & min,
const Array< T, N > & max )

限制元素到 前闭后开区间(过大自动减1)

注解
不能是浮点型,闭区间请用Clamp

在文件 dl_range_each.h54 行定义.

◆ Limit() [2/2]

template<IsInteger T, size_t N>
Array< T, N > dl::Each::Limit ( const Array< T, N > & a,
const Array< T, N > & min,
const Array< T, N > & max )
nodiscard

在文件 dl_range_each.h67 行定义.

◆ Max()

template<typename T, size_t N>
Array< T, N > dl::Each::Max ( const Array< T, N > & a,
const Array< T, N > & b )

取两者最大值为新元素

注解
类型长度一致,所以用array

在文件 dl_range_each.h40 行定义.

◆ Min()

template<typename T, size_t N>
Array< T, N > dl::Each::Min ( const Array< T, N > & a,
const Array< T, N > & b )

取两者最小值为新元素

注解
类型长度一致,所以用array

在文件 dl_range_each.h25 行定义.

◆ Yes()

template<typename C0, typename C1, typename F>
bool dl::Each::Yes ( const C0 & container0,
const C1 & container1,
F func )

判断两个容器 每个元素都满足条件

参数
[in]container0操作的容器
[in]container1操作的容器
[in]func条件

在文件 dl_range_each.h144 行定义.