重载加法运算符以将两个矩阵相加的 C++ 程序
假设我们有两个矩阵 mat1 和 mat2。我们必须将这两个矩阵相加并形成第三个矩阵。我们必须通过重载加法运算符来做到这一点。
所以,如果输入是这样的
5 | 8 |
9 | 6 |
7 | 9 |
8 | 3 |
4 | 7 |
6 | 3 |
那么输出将是
13 | 11 |
13 | 13 |
13 | 12 |
为了解决这个问题,我们将按照以下步骤操作 -
重载加法运算符,这将采用另一个矩阵 mat 作为第二个参数
定义一个空白的二维数组 vv
定义一个二维数组 vv 并将当前矩阵元素加载到其中
对于初始化 i := 0,当 i < vv 的大小时,更新(将 i 增加 1),执行:
vv[i, j] := vv[i, j] + mat.a[i, j]
对于初始化 j := 0,当 j < vv[0] 的大小时,更新(将 j 增加 1),执行:
使用 vv 返回一个新矩阵
让我们看看以下实现以获得更好的理解 -
示例
#include <iostream>#include <vector>
using namespace std;
class Matrix {
public:
Matrix() {}
Matrix(const Matrix& x) : a(x.a) {}
Matrix(const vector<vector<int>>& v) : a(v) {}
Matrix operator+(const Matrix&);
vector<vector<int>> a;
void display(){
for(int i = 0; i<a.size(); i++){
for(int j = 0; j<a[i].size(); j++){
cout << a[i][j] << " ";
}
cout << endl;
}
}
};
Matrix Matrix::operator+(const Matrix& m){
vector<vector<int>> vv = a;
for (int i=0; i<vv.size(); i++){
for (int j=0; j<vv[0].size(); j++){
vv[i][j] += m.a[i][j];
}
}
return Matrix(vv);
}
int main(){
vector<vector<int>> mat1 = {{5,8},{9,6},{7,9}};
vector<vector<int>> mat2 = {{8,3},{4,7},{6,3}};
int r = mat1.size();
int c = mat1[0].size();
Matrix m1(mat1), m2(mat2), res;
res = m1 + m2;
res.display();
}
输入
{{5,8},{9,6},{7,9}}, {{8,3},{4,7},{6,3}}输出结果
13 1113 13
13 12
以上是 重载加法运算符以将两个矩阵相加的 C++ 程序 的全部内容, 来源链接: utcz.com/z/357324.html