#ifndef INCLUDE_MATRIX #define INCLUDE_MATRIX #include #include using namespace std; class Matrix{ private: int M,N ; vector ele; public: Matrix( int m , int n ) : M(m) , N(n), ele(m*n , 0){ } Matrix( int m , int n , const double *d ); Matrix( int m , int n , const vector v ); Matrix & operator=( const Matrix & mat ) ; Matrix & operator+=( const Matrix & mat ) ; Matrix & operator-=( const Matrix & mat ) ; int getm( ) const { return M ; } int getn( ) const { return N ; } double get( int i , int j ) const { return ele[ i * N + j ] ; } void set( int i , int j , double a ) { ele[ i * N + j ] = a ; } Matrix operator + ( ) const { return *this ; } Matrix operator + ( Matrix mat ) const ; Matrix operator - ( ) const ; Matrix operator - ( Matrix mat ) const ; Matrix operator * ( Matrix mat ) const ; Matrix inv( ) const ; Matrix trans( ) const ; }; std::ostream &operator<<(std::ostream & , const Matrix & ); Matrix operator*( double a , Matrix mat ); #endif