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

📄 matrix.cpp

📁 矩阵类 简单的矩阵类的编写
💻 CPP
字号:
// Matrix.cpp: implementation of the Matrix class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Matrix.h"

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

Matrix::Matrix()
:m_nRow(0), m_nCol(0), m_pData(NULL)
{
}

Matrix::Matrix(int r, int c, float *p)
:m_nRow(r), m_nCol(c)
{
	int i, j;

	m_pData = new float*[r];
	for(i = 0;  i < r; i++)
		*(m_pData + i) = new float[c];
		// m_pData[i] = new float[c];
	
	int k = 0;
	for(i = 0; i < m_nRow; i++)
		for(j = 0; j < m_nCol; j++)
			m_pData[i][j] = p[k++];
			// *(*(m_pData + i)+j)=*(p+k++);
}


Matrix::~Matrix()
{
	if(m_pData)
	{
		for(int i = 0; i < m_nRow; i++)
			delete []m_pData[i];

		delete []m_pData;
		m_pData = NULL;
	}
}

void Matrix::PrintData()
{
	for(int i = 0; i <  m_nRow; i++)
	{
		for(int j = 0; j <  m_nCol; j++)
			cout << m_pData[i][j] << "  ";			
		cout << endl;
	}

	
}


float* Matrix::operator [](int i)
{
	return *(m_pData + i);
	//return m_pData[i];
}

Matrix Matrix::operator +(Matrix x)
{
	int i, j;
	Matrix result;
	result.m_nRow = m_nRow;
	result.m_nCol = m_nCol;
	result.m_pData = new float*[m_nRow];
	for(i = 0;  i < m_nRow; i++)
		*(result.m_pData + i) = new float[m_nCol];

	for(i = 0; i < m_nRow; i++)
		for(j = 0; j < m_nCol; j++)
			result.m_pData[i][j] = m_pData[i][j] + x.m_pData[i][j];

	return result;
}

Matrix Matrix::operator =(Matrix x)
{
	int i, j;
	this->m_nRow = x.m_nRow;
	this->m_nCol = x.m_nCol;
	if(m_pData)
	{
		for(int i = 0; i < m_nRow; i++)
			delete []m_pData[i];

		delete []m_pData;
		m_pData = NULL;
	}

	m_pData = new float*[m_nRow];
	for(i = 0;  i < m_nRow; i++)
		*(m_pData + i) = new float[m_nCol];
	
	for(i = 0; i < m_nRow; i++)
		for(j = 0; j < m_nCol; j++)
			m_pData[i][j] = x.m_pData[i][j];

	return *this;
}

⌨️ 快捷键说明

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