我知道您可以通过其他方式传递数组,例如:
returnType functionName(dataType array [] [10])
但是我对你事先不知道数组大小的情况感兴趣。我希望能够将行数和列数作为参数传递。
如何将任何大小的数组传递给C ++函数?我想按照以下方式做点什么:
void functionName(dataType array[][], int num_rows, int num_cols){
// ***Some operation such as printing the array's contents***
}
答案 0 :(得分:2)
有三种方法可以解决这个问题:
template <std::size_t W, std::size_t H> void func(Type (&array)[W][H]) {}
答案 1 :(得分:1)
两种可能性:
使用向量向量,您甚至不必将大小作为额外参数传递:
void functionName( std::vector<std::vector<dataType>>);
使用模拟二维数组的一维数组:
void functionName( dataType [] array, int num_rows, int num_cols);
计算一维数组的索引,如下所示:
int i = row_index * num_cols + column_index;