相关疑难解决方法(0)

如何使用new在C++中声明二维数组?

如何使用new声明二维数组?

就像,对于"普通"数组,我会:

int* ary = new int[Size]
Run Code Online (Sandbox Code Playgroud)

int** ary = new int[sizeY][sizeX]
Run Code Online (Sandbox Code Playgroud)

a)不工作/编译和b)没有完成什么:

int ary[sizeY][sizeX] 
Run Code Online (Sandbox Code Playgroud)

确实.

c++ arrays multidimensional-array dynamic-allocation

496
推荐指数
14
解决办法
87万
查看次数

3D数组删除C++的性能降低

int newHeight = _height/2;
    int newWidth = _width/2;

    double*** imageData = new double**[newHeight];
    for (int i = 0; i < newHeight; i++)
    {
        imageData[i] = new double*[newWidth];
        for (int j = 0; j < newWidth; j++)
        {
            imageData[i][j] = new double[4];
        }
    }
Run Code Online (Sandbox Code Playgroud)

我动态分配了这个3D矩阵.什么是最快最安全的释放内存的方法?

这是我已经完成但是这需要几秒钟我的矩阵很大(1500,2000,4)

  for (int i = 0; i != _height/2; i++)
        {
            for (int j = 0; j != _width/2; j++)
            {
                delete[] imageData[i][j];
            }
            delete[] imageData[i];
        }
        delete[] imageData;
Run Code Online (Sandbox Code Playgroud)

更新
如建议我选择了这个解决方案:

std::vector<std::vector<std::array<double,4>>>
Run Code Online (Sandbox Code Playgroud)

性能对我的情况很好

c++ memory-management

0
推荐指数
1
解决办法
322
查看次数