可以将std::array<float, 4>
转换为std::array<double, 4>
吗?
例如:
http://coliru.stacked-crooked.com/a/d62b3846618e4f81
发布于 2016-05-18 16:02:40
不,你不能把其中一个投给另一个。它们是两种不相关的类型。您需要循环遍历源数组,并设置目标数组中的每个对应元素。
std::array<float, 4> float_array{ 0.0f, 10.0f, 20.0f, 30.0f };
std::array<double, 4> double_array;
for (std::size_t i = 0; i < float_array.size(); ++i)
double_array[i] = float_array[i]
发布于 2016-05-18 16:24:36
类型是不一样的,因此不能仅仅将一种类型转换为另一种类型。
您可以使用std::copy
算法函数而不是循环。
#include <algorithm>
//..
std::array<float, 4> f4;
std::array<double, 4> d4;
//.. float to double
std::copy(f4.begin(), f4.end(), d4.begin());
// double to float
std::copy(d4.begin(), d4.end(), f4.begin());
https://stackoverflow.com/questions/37304691
复制相似问题