在C++中将1D矢量转换为2D矢量
Converting 1D vector into 2D in C++
我有一个1D向量(Vp_cpp),我想转换为2D向量(声明为Vp_2D)。然而,我的实现有些不正确,因为它无法达到"从内部循环输出"这一行。
std::vector<double> Vp_cpp;
std::vector<std::vector<double> > Vp_2D;
Vp_2D.resize(N_cpp);
for (int i = 0; i < N_cpp; ++i)
Vp_2D[i].resize(N_cpp);
for (int j = 0; j < N_cpp; j++)
for (int k = 0; k < N_cpp; k++)
{
cout << "Beginning inner loop" << endl;
Vp_2D[i_cpp][i_cpp2] = Vp_cpp[i_cpp2];
cout << "Out from inner loop" << endl;
}
可能出了什么问题?
这一行对我来说似乎错了:
Vp_2D[i_cpp][i_cpp2] = Vp_cpp[i_cpp2];
我会写:
Vp_2D[j][k] = Vp_cpp[i++];
其中CCD_ 1用于在CCD_。应在for (int j, ...
循环之前将其初始化为0。
更改行
Vp_2D[i_cpp][i_cpp2] = Vp_cpp[i_cpp2];
至
Vp_2D[j][k] = Vp_cpp[(j * N_cpp) + k];
否则,您将多次重新分配一个值。
Vp_2D[i_cpp][i_cpp2] = Vp_cpp[i_cpp2];
每次循环通过此指令时,它都会将值重置为Vp_2D[i_cpp][i_cpp2]
(因为循环内i_cpp
和i_cpp2
上没有可见的赋值)。
您应该将其更改为Vp_2D[j][k]
。
相关文章:
- 如何使用 C++将 2D RGB 数组转换为 dds 文件?
- C++动态将矢量转换为 2D
- 借助功能将 2D 转换为 1D 数组
- 将2D矢量转换为FFTW_Complex
- 使用C++将1D数组转换为2D字符串数组
- 将 3D 变换转换为 2D
- 如何在 c++ 中将 2D 数组转换为单个字符串
- 如何将 2d 数组转换为 svg 或 png 格式的数独图像?
- 使用 std::transform 在 2d C 阵列上转换为 1d C 数组
- 如何在不复制数据的情况下将 cv::Mat 转换为 2d 标准::矢量
- 用于将笛卡尔 (x,y,z) 转换为圆柱坐标 (ρ,θ,z) 坐标 2D/3D 的代码
- 在 C++ 中,用于将大型 2D 数组转换为 1D 数组的内存分配
- 使用 c++ 将 2d CAD 对象转换为 TIFF 格式
- 如何将 2D 数组转换为矢量
- (对于C++)读取类型从文件转换为 2D 数组
- 使用 c++ 将 1D 转换为 2D
- 将 2D 矢量转换为 C 类型的最佳方法(适用于 SGX 飞地)
- 将字符 2d 数组转换为整数 2d 数组
- 正确转换 2D 数组的成员变量
- 如何使用Direct3D 11 API加载、渲染和转换2D图像