重载加法运算符以将两个矩阵相加的 C++ 程序

假设我们有两个矩阵 mat1 和 mat2。我们必须将这两个矩阵相加并形成第三个矩阵。我们必须通过重载加法运算符来做到这一点。

所以,如果输入是这样的

58
96
79
83
47
63

那么输出将是

1311
1313
1312

为了解决这个问题,我们将按照以下步骤操作 -

  • 重载加法运算符,这将采用另一个矩阵 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 11

    13 13

    13 12

    以上是 重载加法运算符以将两个矩阵相加的 C++ 程序 的全部内容, 来源链接: utcz.com/z/357324.html

    回到顶部