C++ - 参差不齐的 4d 数组

标签 c++ arrays vector

我正在编写一个程序,它需要使用一个非常原始的(至少,对我来说是新的)整数数组。它应该看起来像: 我的数组[a][b][c][d]

a 从 0 到 N_CORES-1,其中 N_CORES 是正在运行的机器上的 CPU 内核数,由 open-mp 从一开始就定义。

c, d 取 0 到 ARG 之间的值,ARG 是用户传递的行参数

但 b 需要在 0 和一个值之间运行,具体取决于 a(并非每个内核都相同)。

我尝试使用带循环的 new 分配器创建此对象:

for(int i =0;i < N_CORES; i++){
    my_array[i] = new int**[size_for_i];

但后来我遇到了段错误。是因为定义这些锯齿状数组的方式不对吗?我应该使用 vector 吗?我从来没有用 vector 做过 4 维的东西,所以我有点迷路了。

编辑:实际上我决定以另一种方式实现它,使用“仅”3d 数组,合并我之前对象的两个第一个索引。非常感谢您的建议!

最佳答案

试试这个:

int ***my_array[N_CORES];
for(int a = 0; a < N_CORES; a++)
{
    my_array[a] = new int**[size_for_a];
    for( int b = 0; b < size_for_a[a]; b++)
    {
        my_array[a][b] = new int*[ARG];
        for( int c = 0; c < ARG; c++)
        {
             my_array[a][b][c] = new int[ARG];
        }
    }
}

关于C++ - 参差不齐的 4d 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22643245/

相关文章:

c++ - 如何使用 C++ 和英特尔 API 将 .JSON 文件加载到 RealSense D435 相机

javascript - 获取特定 Array 属性的最小值的更好方法

python-2.7 - SKlearn : load trainning data by reading multiple files in a directory

c++ - 并发写入 vector<bool>

c++ - 为什么memcpy复制Eigen矩阵数据失败,std::copy成功?

c++ - 可以报​​告失败原因的 std::optional 的替代方案

JavaScript 与 PHP 对数组进行排序

java - 如何使用另一个类中的方法从一个 java 类中的 MD 数组中删除重复项

c++ - std::vector 在加载/清除大量数据时变得越来越慢

c++ - 在 C++ 中初始化二维 vector 的问题