Files
Data-Structure/Matrix/main.cpp
2025-07-20 21:53:15 +08:00

74 lines
1.6 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include <iostream>
#include "matrix.h"
using namespace std;
/*
TO TEST:
ok matrix(int rows = 0, int cols = 0);
ok ~matrix() { delete[] element; }
ok int rowss() const { return rows; }
ok int columns() const { return cols; }
ok int times(int i, int j, matrix<T>& left, matrix<T>& right) const;//If unused, write it in private
T& operator()(int i, int j) const;
matrix<T>& operator=(const matrix<T>& x);
//matrix<T> operator+() const;
matrix<T> operator+(const matrix<T>& x) const;
//matrix<T> operator-() const;
matrix<T> operator-(const matrix<T>& x) const;
matrix<T> operator*(const matrix<T>& x) const;
matrix<T>& operator+=(const matrix<T>& x);
friend ostream& operator<<(const matrix<T>& x);
*/
int main() {
int l[] = { 1,2,3,4,5,6 };
matrix<int> left(2, 3, l), right(3, 2, l);
cout << "left: " << endl << left << endl;
cout << "right: " << endl << right << endl;
cout << "left(1, 1): " << left(1, 1) << endl;
cout << "right(2, 1): " << right(2, 1) << endl << endl;
int out[] = { 1,2,3,4 };
matrix<int> tmp(2, 2, out);
tmp = left * right;
cout << "times: " << endl << tmp << endl << endl;
//还是有地方浅拷贝了,调试过程中最好加上引用
//大概率是拷贝构造函数的问题如果直接输出非引用会创建新的对象这个对象会出问题比如double delete之类
cout << "transpose: " << endl << tmp.transpose() << endl;
cout << "transpose left: " << endl << left.transpose() << endl;
cout << "transpose right: " << endl << right.transpose() << endl;
return 0;
}
/*
left:
1 2 3
4 5 6
right:
1 2
3 4
5 6
left(1, 1): 1
right(2, 1): 3
times:
22 28
49 64
transpose:
22 49
28 64
transpose left:
1 4
2 5
3 6
transpose right:
1 3 5
2 4 6
*/