我想這個問題是建立在C++ convert vector<int> to vector<double>二維矢量類型轉換
我想投一個int類型的二維矢量(存儲在一個對象)到double類型的二維矢量。根據我提供的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網(X,Y,Z,I,J,K,L);在代碼中。
感謝Ypnos爲第一個問題的答案,但這引發了另一個問題:有沒有辦法做到這一點沒有循環? – user1558168
請貼出「Mesh.matrix」聲明的內容。 – PaulMcKenzie
要做到這一點沒有明確的循環,你可以使用for_each()和必要的函子。 – PaulMcKenzie