⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matrix.cpp

📁 自动生成矩阵 用法简单 用用就知道了
💻 CPP
字号:
#include <new>
#include <cstdlib>
#include <iostream>

using namespace std;

#include "Matrix.h"

Matrix::Matrix( int r, int c )
: row( r ), col( c )
{
	ptr = new int[ row * col ];

	for ( int i = 0; i < row; i++ )

		for ( int j = 0; j < col; j++ )

			ptr[ i * col + j ] = 0;
}

Matrix::Matrix( const Matrix &mat )
{

	ptr = new int[ mat.col * mat.row ];

	row = mat.row;

	col = mat.col;

	for ( int i = 0; i < row; i++ )

			for ( int j = 0; j < col; j++ )

				ptr[ i * col + j ] = mat.getelem( i, j );

}

Matrix::~Matrix()
{
	delete [] ptr;
}


int Matrix::getc()
{
	return col;
}



int Matrix::getr()
{
	return row;
}



int Matrix::gete( int r, int c )
{
	if( r >= row || r < 0 || c >= col || c < 0 )
	{
		cout << "Error: Subscript overbuf!";
		exit( 1 );
	}
	return ptr[ r * col + c ];
}




void Matrix::sete( int r, int c, int elem )
{
	if( r >= row || r < 0 || c >= col || c < 0 )
	{
		cout << "Error: Subscript overbuf!";

		exit( 1 );

	}
	ptr[ r * col + c ] = elem;
}




void Matrix::subtract( const Matrix &mat )
{
	for ( int i = 0; i < row; i++ )

		for ( int j = 0; j < col; j++ )

			ptr[ i * col + j ] -= mat.ptr[ i * col + j ];

}



void Matrix::add( const Matrix &mat )
{
	for ( int i = 0; i < row; i++ )

		for ( int j = 0; j < col; j++ )

			ptr[ i * col + j ] += mat.ptr[ i * col + j ];


}

bool Matrix::equals( const Matrix &mat ) 
{
	for ( int i = 0; i < row; i++ )

		for ( int j = 0; j < col; j++ )

			if( ptr[ i * col + j ] != mat.ptr[ i * col + j ] )

				return false;
			
	return true;
}



Matrix &Matrix::operator=( const Matrix &mat )
{
	if ( this != &mat )
	{
		if ( col != 0 && row != 0 )

			delete [] ptr;

		row = mat.row;

		col = mat.col;

		ptr = new int [ row * col ];

		for ( int i = 0; i < row; i++ )

			for ( int j = 0; j < col; j++ )

				ptr[ i * col + j ] = mat.getelem( i, j );
	}
	return *this;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -