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

在C++中,可以使用std::vector来模拟二维矩阵,并实现矩阵相加。关键是将二维结构用一维的vector嵌套表示,即vector
使用vector定义二维矩阵非常直观:
两个矩阵能相加的前提是它们的维度完全相同。即行数和列数都要一致。代码中需要先判断这一点,避免越界访问。
下面是一个完整的实现示例:
立即学习“C++免费学习笔记(深入)”;
#include <iostream>
#include <vector>
using namespace std;
// 矩阵相加函数
vector<vector<int>> addMatrix(const vector<vector<int>>& a, const vector<vector<int>>& 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<vector<int>> result(rows, vector<int>(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<vector<int>>& mat) {
for (const auto& row : mat) {
for (int val : row) {
cout << val << " ";
}
cout << endl;
}
}
主函数中调用上述功能:
int main() {
// 创建两个 2x3 矩阵
vector<vector<int>> mat1 = {{1, 2, 3}, {4, 5, 6}};
vector<vector<int>> mat2 = {{7, 8, 9}, {10, 11, 12}};
try {
vector<vector<int>> sum = addMatrix(mat1, mat2);
cout << "相加结果:\n";
printMatrix(sum);
} catch (const exception& e) {
cerr << "错误:" << e.what() << endl;
}
return 0;
}
输出结果为:
7 10 12基本上就这些。只要保证维度一致,用vector实现矩阵相加清晰又安全。也可以模板化支持不同数据类型,提升通用性。
以上就是c++++中如何使用vector实现矩阵相加_c++ vector矩阵相加实现方法的详细内容,更多请关注php中文网其它相关文章!
c++怎么学习?c++怎么入门?c++在哪学?c++怎么学才快?不用担心,这里为大家提供了c++速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号