在uchar类型的数组中,我有一个简单的数组 [非矢量] ,数据范围在0-255之间。但是对于某些计算,我需要将数组复制到双精度型数组。
我可以循环执行此操作,然后逐个元素地将其复制。但是,看看是否有一些简单的过程可以通过某些函数或方法来做到这一点。
答案 0 :(得分:2)
C++ algorithms可在任何类型的迭代器上使用,它们不限于特定的容器类型。
这样,您可以使用std::copy
将值从一个迭代器范围复制到另一个迭代器范围,并在此过程中执行隐式类型转换:
uchar a[N];
double b[N];
// …
std::copy(std::begin(a), std::end(a), std::begin(b));
// or:
std::copy_n(std::begin(a), N, std::begin(b));
上面的代码使用C样式的数组,但是std::array
当然也适用。