ধরুন আমাদের দুটি ম্যাট্রিস mat1 এবং mat2 আছে। আমাদের এই দুটি ম্যাট্রিক্স যোগ করে তৃতীয় ম্যাট্রিক্স গঠন করতে হবে। সংযোজন অপারেটরকে ওভারলোড করে আমাদের এটি করতে হবে।
সুতরাং, যদি ইনপুট মত হয়
5 | 8 |
9 | 6 |
7 | 9 |
8 | 3 |
4 | 7 |
6 | 3 |
তাহলে আউটপুট হবে
13 | 11 |
13 | 13 |
13 | 12 |
এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -
-
সংযোজন অপারেটরকে ওভারলোড করুন, এটি দ্বিতীয় যুক্তি হিসাবে আরেকটি ম্যাট্রিক্স ম্যাট গ্রহণ করবে
-
একটি ফাঁকা 2d অ্যারে vv
সংজ্ঞায়িত করুন -
একটি 2D অ্যারে vv সংজ্ঞায়িত করুন এবং এতে বর্তমান ম্যাট্রিক্স উপাদানগুলি লোড করুন
-
আরম্ভ করার জন্য i :=0, যখন i
-
j শুরু করার জন্য :=0, যখন j
- vv[i, j] :=vv[i, j] + mat.a[i, j]
-
- 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