私の質問は、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 を使用して変換することはできないようです。この問題に対する良い解決策があるかどうか疑問に思っていました。ありがとう!