我的问题与 C++ 中的数字类型转换有关。一个非常常见的方法是使用 static_cast,例如:
float a;
int b;
a = 3.14;
b = static_cast<int>(a);
那么,数值向量类型转换呢?我们可以继续使用 static_cast 吗?我做了以下实验:
typedef vector<int> IntVector;
typedef vector<float> FloatVector;
IntVector myvector;
myvector.push_back(3);
myvector.push_back(4);
myvector.push_back(5);
// Solution 1 (successful)
FloatVector solution1 ( myvector.begin(), myvector.end() );
for(int i=0; i<solution1.size(); i++)
cout<<solution1[i]<<endl;
// Solution 2 (failed)
FloatVector solution2;
solution2 = static_cast<FloatVector> (myvector);
似乎对于数字向量类型,不可能使用 static_cast 进行转换。我想知道这个问题是否有好的解决方案。谢谢!