c++二维数组传参
时间: 2025-04-29 09:55:17 浏览: 31
### C++ 中传递二维数组作为函数参数的方法
在C++中,可以通过多种方式将二维数组传递给函数。一种常见的方式是指针表示法。
当定义一个接受二维数组的函数时,可以指定数组的第一维大小为任意值,而第二维度则需固定。这通常通过指针来实现:
```cpp
void processArray(int (*array)[COLS], int rows);
```
上述声明表明 `processArray` 函数接收指向具有 COLS 列数的一维整型数组的指针以及行的数量[^1]。
另一种方法是利用模板编程技术创建能够处理不同尺寸的二维数组的泛化版本:
```cpp
template<typename T, std::size_t ROWS, std::size_t COLS>
void templateProcess(T (&matrix)[ROWS][COLS]) {
// 处理矩阵逻辑...
}
```
此代码片段展示了如何使用模板让编译器自动推导出传入数组的具体行列数目[^2]。
对于动态分配内存的情况或者不知道确切列宽的情形下,还可以采用双重指针的形式,即先申请一块存储空间用于保存每一行首地址的信息,再分别为各行开辟相应长度的空间。不过这种方式较为复杂,在实际应用中应谨慎考虑其必要性和性能影响。
为了简化操作并提高灵活性,现代C++推荐使用标准库容器如std::vector替代传统多维数组结构。例如,可以用嵌套向量(vector of vectors)轻松构建和管理不规则形状的数据集。
```cpp
#include <iostream>
#include <vector>
// 使用 vector 表达二维数组
void display(const std::vector<std::vector<int>>& matrix){
for(auto& row : matrix){
for(auto elem : row){
std::cout << elem << ' ';
}
std::cout << '\n';
}
}
int main(){
std::vector<std::vector<int>> myMatrix{{1, 2}, {3, 4}};
display(myMatrix);
return 0;
}
```
这段程序演示了怎样借助 STL 容器类来高效地表达和遍历二维数据集合[^3]。
阅读全文
相关推荐

















