📄 matrix.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 + -