将矢量转换为数组
Converting vectors to an array
我在转换类型向量时遇到问题<vector>到数组。到目前为止,我已经尝试了以下操作(在/u/Robert Crovella的帮助下)
pos_x_h=(double *)malloc(N*sizeof(double));
pos_y_h=(double *)malloc(N*sizeof(double));
for (int i = 0; i<N; i++){
vector<double> temp = r[i];
pos_x_h[i] = temp[i][0];
pos_y_h[i] = temp[i][1];
}
这里,r是具有N个元素的位置矢量,每个元素具有x和y分量。我也试过做
double arr[N];
std::copy(r.begin(), r.end(), arr);
两次尝试都没有成功,我不知道为什么。你可以在这里看到代码。
以下内容应该有效。注意,我更喜欢sizeof *pos_x_h
而不是sizeof(double)
,因为前者可以确保大小正确,即使您更改了变量的类型(可能在另一段代码中)更新*对于C++,您需要强制转换malloc
的结果。我戴着我的C帽子在想…
第二次更新
更多的思考告诉我你真的不想把temp
作为向量——这只会让事情变得更加混乱。相反,指向r[i]
的第一个元素的地址:这编译时没有错误
pos_x_h=(double *)malloc(N*sizeof(double));
pos_y_h=(double *)malloc(N*sizeof(double));
for (int i = 0; i<N; i++){
double* temp;
temp = &r[i][0];
pos_x_h[i] = temp[0];
pos_y_h[i] = temp[1];
}
当然你可以简单地做
pos_x_h=(double *)malloc(N*sizeof(double));
pos_y_h=(double *)malloc(N*sizeof(double));
for (int i = 0; i<N; i++){
pos_x_h[i] = r[i][0];
pos_y_h[i] = r[i][1];
}
避免整个混乱。
相关文章:
- 如何在C++中将数组转换为矢量指针
- 将C++中的数组转换为字符串
- NLOHMANN 的 JSON 库将数组转换为结构向量
- 将 int 数组转换为 std::vector<int*>
- 在nlohmann json中,如何将嵌套对象的数组转换为嵌套结构的向量
- 无法在 Arduino 中uint8_t数组转换为无符号长整型数组
- 将字节数组转换为带有字节序问题的指针
- 使用 stbi_write_png,如何将 0 和 1 的矩形字节数组转换为单色 png 文件?
- 将字符数组转换为时间结构
- 将字节数组转换为多维数组
- 可视化 如何在C++中将字符数组转换为 FILE 类型
- 在 C++ 中将整数数组转换为位集表示形式的最佳方法?
- C++如何将字符数组转换为字节向量(向量<byte>)
- 将字符数组转换为结构时出现问题. 结构的字符数组变量溢出
- 无法将字符数组转换为包含 utf-8 字符的字符串
- 如何使用 C++将 2D RGB 数组转换为 dds 文件?
- 如何将字符串指针数组转换为字符串类型的智能指针向量?
- 将 int 数组转换为带有小数C++的双精度数组
- 使用 .data() 将字符数组转换为 std::string 不会转换整个数组
- 将字符数组转换为整数值