c++ - 如何将未知大小的二维数组传递给函数

标签 c++ function pointers matrix

我想制作类库,一个函数,它的参数是一个未知大小的矩阵,用户将用自己的大小创建自己的矩阵,并将它传递给这个函数来对他的矩阵进行一些操作,就像这样,将是函数

calculateDeterminantOfTheMatrix( int matrix[][])
{
   some Operations to do on matrix 
}

最佳答案

C 和 C++ 的内置组件对多维数组的支持不是很好。你可以传递 N -dimension array only when you know N-1编译时的维度:

calculateDeterminantOfTheMatrix( int matrix[][123])

然而,标准库提供std::vector容器,这对于多维数组非常有效:在您的情况下,传递 vector<vector<int> > &matrix将是在 C++ 中处理任务的正确方法。

int calculateDeterminantOfTheMatrix(vector<vector<int> > &matrix) {
    int res = 0;
    for (int i = 0 ; i != matrix.size() ; i++)
        for(int j = 0 ; j != matrix[i].size() ; j++)
            res += matrix[i][j];
    return res;
}

作为额外的好处,您不需要将矩阵的维度传递给函数:matrix.size()代表第一个维度,matrix[0].size()代表二次元。

关于c++ - 如何将未知大小的二维数组传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10164263/

相关文章:

c++ - boost asio - 编写等效的代码

c++ - 如何在 C++ 中创建 "undo"?

c++ - 在 C++ 中使用指针的列表大小

无法释放内存(断言错误)

c++ - 在 C++ 中绘制形状的简单方法?

c++ - 重载运算符作为友元

swift - 如何使功能代码更清晰和优化?

c - 体系结构 x86_64 函数指针的 undefined symbol

android - 澄清函数调用

C++模板类继承和运算符使用