HackerRank Operator Overloading solution in c++ programming YASH PAL, 31 July 202422 August 2024 In this HackerRank Operator Overloading problem in c++ programming language, You are given a main() function that takes a set of inputs to create two matrices and prints the result of their addition. You need to write the class Matrix which has a member an of type vector<vector<int> >. You also need to write a member function to overload the operator +. The function’s job will be to add two objects of Matrix-type and return the resultant Matrix. HackerRank operator overloading problem solution in c++ programming. #include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> using namespace std; class Matrix{ public: vector<vector<int> > a; Matrix & operator + (const Matrix &y) { for (int m=0; m<y.a.size(); ++m) { for (int n=0; n<y.a[0].size(); ++n) { this->a[m][n] = this->a[m][n] + y.a[m][n]; } } return *this; } }; int main () { int cases,k; cin >> cases; for(k=0;k<cases;k++) { Matrix x; Matrix y; Matrix result; int n,m,i,j; cin >> n >> m; for(i=0;i<n;i++) { vector<int> b; int num; for(j=0;j<m;j++) { cin >> num; b.push_back(num); } x.a.push_back(b); } for(i=0;i<n;i++) { vector<int> b; int num; for(j=0;j<m;j++) { cin >> num; b.push_back(num); } y.a.push_back(b); } result = x+y; for(i=0;i<n;i++) { for(j=0;j<m;j++) { cout << result.a[i][j] << " "; } cout << endl; } } return 0; } Second solution // overloading operators example #include <iostream> #include <vector> using namespace std; class Matrix { public: vector<vector<int> > a; Matrix operator + (const Matrix&); }; Matrix Matrix::operator+ (const Matrix& param) { Matrix temp; int n = a.size(),i,j; int m = a[0].size(); for(i=0;i<n;i++) { vector<int> b; for(j=0;j<m;j++) { b.push_back(param.a[i][j]+a[i][j]); } temp.a.push_back(b); } return temp; } int main () { int cases,k; cin >> cases; for(k=0;k<cases;k++) { Matrix x; Matrix y; Matrix result; int n,m,i,j; cin >> n >> m; for(i=0;i<n;i++) { vector<int> b; int num; for(j=0;j<m;j++) { cin >> num; b.push_back(num); } x.a.push_back(b); } for(i=0;i<n;i++) { vector<int> b; int num; for(j=0;j<m;j++) { cin >> num; b.push_back(num); } y.a.push_back(b); } result = x+y; for(i=0;i<n;i++) { for(j=0;j<m;j++) { cout << result.a[i][j] << " "; } cout << "n"; } } return 0; } coding problems cpp hackerrank solutions