ধরা যাক দুটি ম্যাট্রিক্স mat1 এবং mat2 দেওয়া আছে। আমাদের এই দুটি ম্যাট্রিক্স যোগ করে তৃতীয় ম্যাট্রিক্স তৈরি করতে হবে। এটি অপারেটর ওভারলোডিং (+) দিয়ে করতে হবে।
উদাহরণস্বরূপ, mat1 = {{5,8},{9,6},{7,9}}, mat2 = {{8,3},{4,7},{6,3}} হলে আউটপুট হবে {{13,11},{13,13},{13,12}}।
সমাধানের ধাপসমূহ
- Matrix ক্লাস তৈরি করুন যাতে ২D ভেক্টর a থাকে
- অপারেটর + ওভারলোড করুন যা অন্য একটি Matrix নিবে
- বর্তমান ম্যাট্রিক্সের কপি vv-তে রাখুন
- প্রতিটি উপাদানের জন্য vv[i][j] += m.a[i][j] করুন
- নতুন Matrix(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