Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef MATRIX_H
- #define MATRIX_H
- #include<iostream>
- using namespace std;
- template <class T>
- class matrix{
- public:
- int Row, Col;
- T **value;
- matrix(){
- cout << "Enter dimention: raws, cols" << endl;
- cin >> Row >> Col;
- cout << "Enter matrix elements:" << endl;
- value = new T *[Row];
- for (int i = 0; i<Row; i++)
- value[i] = new T [Col];
- for (int i = 0; i<Row; i++)
- for (int j = 0; j<Col; j++){
- cin >> value[i][j];
- }
- }
- matrix(int row, int col){
- Row = row;
- Col = col;
- value = new T *[Row];
- for (int i = 0; i<Row; i++)
- value[i] = new T[Col];
- for (int i = 0; i < Row; i++)
- for (int j = 0; j < Col; j++)
- value[i][j] = 0;
- }
- friend matrix operator+(matrix<T> &m1, matrix<T> &m2){
- int Row = m1.Row;
- int Col = m2.Col;
- matrix<T> temp(Row, Col);
- for (int i = 0; i<Row; i++)
- for (int j = 0; j<Col; j++)
- temp.value[i][j] = m1.value[i][j] + m2.value[i][j];
- return temp;
- };
- friend matrix operator-(matrix<T> &m1, matrix<T> &m2){
- int Row = m1.Row;
- int Col = m2.Col;
- matrix<T> temp(Row, Col);
- for (int i = 0; i<Row; i++)
- for (int j = 0; j<Col; j++)
- temp.value[i][j] = m1.value[i][j] - m2.value[i][j];
- return temp;
- };
- friend matrix operator*(matrix<T> &
- m1, matrix<T> &m2){
- int Row = m1.Row;
- int Col = m2.Col;
- matrix<T> temp(Row, Col);
- for (int i = 0; i < Row; i++)
- for (int j = 0; j < Col; j++)
- for (int t = 0; t < Row; t++)
- temp.value[i][j] += m1.value[i][t] * m2.value[t][j];
- return temp;
- }
- void Tr(matrix<T>&m1){
- for (int i = 0; i < Row; i++)
- for (int j = 0; j < Col; j++)
- m1.value[i][j] = value[j][i];
- }
- void print(){
- for (int i = 0; i < this->Row; i++) {
- for (int j = 0; j < this->Col; j++)
- cout << this->value[i][j] << " ";
- cout << endl;
- }
- }
- };
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement