Console Library 4.7.0
A header-only library that makes C++ simple
Loading...
Searching...
No Matches
类型转换

在不同维度形状或元素类型之间转换 MultiArray。 More...

Functions

template<size_t... OutArrDims, class VarType, size_t... InArrDims>
MultiArray< VarType, OutArrDims... > console::multiarray_cast (const MultiArray< VarType, InArrDims... > &inputArr)
 改变 MultiArray 的维度形状(元素类型不变),要求总元素数相同。
template<class OutType, size_t... OutArrDims, class InType, size_t... InArrDims>
MultiArray< OutType, OutArrDims... > console::unsafe_multiarray_cast (const MultiArray< InType, InArrDims... > &inputArr)
 不安全地改变 MultiArray 的元素类型和维度(内存拷贝)。
template<size_t... OutArrDims, class VarType, size_t... InArrDims>
MultiArray< VarType, OutArrDims... > & console::inplace_multiarray_cast (MultiArray< VarType, InArrDims... > &inputArr)
 就地版本的 multiarray_cast,仅视图,不拷贝(可变版本)
template<size_t... OutArrDims, class VarType, size_t... InArrDims>
const MultiArray< VarType, OutArrDims... > & console::inplace_multiarray_cast (const MultiArray< VarType, InArrDims... > &inputArr)
 就地版本的 multiarray_cast,仅视图,不拷贝(常量版本)

Detailed Description

在不同维度形状或元素类型之间转换 MultiArray。

Function Documentation

◆ inplace_multiarray_cast() [1/2]

template<size_t... OutArrDims, class VarType, size_t... InArrDims>
const MultiArray< VarType, OutArrDims... > & console::inplace_multiarray_cast ( const MultiArray< VarType, InArrDims... > & inputArr)

就地版本的 multiarray_cast,仅视图,不拷贝(常量版本)

Template Parameters
OutArrDims目标维度包。
VarType元素类型。
InArrDims源维度包。
Parameters
inputArr源数组。
Returns
const MultiArray<VarType, OutArrDims...> & 转换后的数组引用。
Note
编译期检查元素总数是否一致。

◆ inplace_multiarray_cast() [2/2]

template<size_t... OutArrDims, class VarType, size_t... InArrDims>
MultiArray< VarType, OutArrDims... > & console::inplace_multiarray_cast ( MultiArray< VarType, InArrDims... > & inputArr)

就地版本的 multiarray_cast,仅视图,不拷贝(可变版本)

Template Parameters
OutArrDims目标维度包。
VarType元素类型。
InArrDims源维度包。
Parameters
inputArr源数组。
Returns
MultiArray<VarType, OutArrDims...> & 转换后的数组引用。
Note
编译期检查元素总数是否一致。

◆ multiarray_cast()

template<size_t... OutArrDims, class VarType, size_t... InArrDims>
MultiArray< VarType, OutArrDims... > console::multiarray_cast ( const MultiArray< VarType, InArrDims... > & inputArr)

改变 MultiArray 的维度形状(元素类型不变),要求总元素数相同。

Template Parameters
OutArrDims目标维度包。
VarType元素类型。
InArrDims源维度包。
Parameters
inputArr源数组。
Returns
MultiArray<VarType, OutArrDims...> 转换后的数组(拷贝元素)。
Note
编译期检查元素总数是否一致。

◆ unsafe_multiarray_cast()

template<class OutType, size_t... OutArrDims, class InType, size_t... InArrDims>
MultiArray< OutType, OutArrDims... > console::unsafe_multiarray_cast ( const MultiArray< InType, InArrDims... > & inputArr)

不安全地改变 MultiArray 的元素类型和维度(内存拷贝)。

Template Parameters
OutType目标元素类型。
OutArrDims目标维度包。
InType源元素类型。
InArrDims源维度包。
Parameters
inputArr源数组。
Returns
MultiArray<InType, OutArrDims...> 重新解释内存的结果。
Warning
此函数使用 memcpy 直接复制内存,要求源和目标总字节数相同,且类型是平凡可复制的。 不进行任何类型检查,可能导致未定义行为。