1

この質問は、 C++ convert vector<int> to vector<double> に基づいていると思います

int 型の 2 次元ベクトル (オブジェクトに格納されている) を double 型の 2 次元ベクトルにキャストしようとしています。私が提供したSOリンクによると、

std::vector<int> intvec;
std::vector<double> doubvec(intvec.begin(),intvec.end());

元のベクトルを型キャストする必要があります(そうします)。

では、なぜ次のコードが機能しないのでしょうか?

std::vector<std::vector<double>> rotmat(Mesh.matrix.begin(),Mesh.matrix.end());

以下の行は問題なく実行できるので、他に問題がないことはわかっています。私は何が欠けていますか?

std::vector<double> dubvec(Mesh.matrix[0].begin(), Mesh.matrix[0].end());

メッシュは次のように定義されます:

class MeshOut
{
public:

MeshOut();



MeshOut(vector < vector < int >>, vector < vector < int >>, int, int, double, int, bool);

vector<vector<int>> matrix;
vector<vector<int>> lv_mat;
int shortNum;
int SourceNum;
double smallestMeshSize;
int factor;
bool Fine;
....

Meshout Mesh(x,y,z,i,j,k,l); を呼び出します。コードで。

4

2 に答える 2

1

intプリミティブとdouble型の間には暗黙の変換規則がありますが、 と の間std::vector<int>にはありませんstd::vector<double>

実際、クラス階層の観点からは、これら 2 つの型の間に関係はありません。

于 2014-02-12T00:53:40.413 に答える