答案是使用std::vector可模拟二维矩阵并实现相加,通过vector matrix(m, vector(n))创建m×n矩阵,利用嵌套vector结构存储元素,逐元素相加完成矩阵运算。

在C++中,可以使用std::vector来模拟二维矩阵,并实现矩阵相加。关键是将二维结构用一维的vector嵌套表示,即vector
定义矩阵结构
使用vector定义二维矩阵非常直观:
-
vector
> matrix(m, vector 表示创建一个 m×n 的整型矩阵。(n)); - vector,便于按行列访问元素。
矩阵相加的基本条件
两个矩阵能相加的前提是它们的维度完全相同。即行数和列数都要一致。代码中需要先判断这一点,避免越界访问。
实现矩阵相加函数
下面是一个完整的实现示例:
立即学习“C++免费学习笔记(深入)”;
#include#include using namespace std; // 矩阵相加函数 vector > addMatrix(const vector >& a, const vector >& b) { // 检查行列是否匹配 if (a.size() != b.size() || a[0].size() != b[0].size()) { throw invalid_argument("矩阵维度不匹配,无法相加!"); } int rows = a.size(); int cols = a[0].size(); vector > result(rows, vector (cols)); for (int i = 0; i < rows; ++i) { for (int j = 0; j < cols; ++j) { result[i][j] = a[i][j] + b[i][j]; } } return result; } // 打印矩阵 void printMatrix(const vector >& mat) { for (const auto& row : mat) { for (int val : row) { cout << val << " "; } cout << endl; } }
使用示例
主函数中调用上述功能:
int main() {
// 创建两个 2x3 矩阵
vector> mat1 = {{1, 2, 3}, {4, 5, 6}};
vector> mat2 = {{7, 8, 9}, {10, 11, 12}};
try {
vector> sum = addMatrix(mat1, mat2);
cout << "相加结果:\n";
printMatrix(sum);
} catch (const exception& e) {
cerr << "错误:" << e.what() << endl;
}
return 0;
}
输出结果为:
7 10 1214 16 18
基本上就这些。只要保证维度一致,用vector实现矩阵相加清晰又安全。也可以模板化支持不同数据类型,提升通用性。











