【发布时间】:2014-03-10 02:14:10
【问题描述】:
我猜这个问题是基于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 Mesh(x,y,z,i,j,k,l);在代码中。
【问题讨论】:
-
感谢 Ypnos 对第一个问题的回答,但这又引发了另一个问题:有没有办法在没有循环的情况下做到这一点?
-
请准确发布“Mesh.matrix”声明的内容。
-
要在没有显式循环的情况下执行此操作,您可以将 for_each() 与必需的函子一起使用。
标签: c++ vector casting 2d-vector