91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 3KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-09
  • 語言: C/C++
  • 標簽:

資源簡介

C++矩陣計算類,可實現矩陣加減乘轉置求逆等計算

資源截圖

代碼片段和文件信息

#include?“StdAfx.h“
#include?“Matrix.h“
#include?“math.h“

CMatrix::CMatrix(int?rowint?col)
{
iRow=row;
iCol=col;
????dMatData?=?new?double*[row];

for?(int?i=0;?i? {
dMatData[i]=?new?double[col];
for(int?j=0;j {
dMatData[i][j]=0;
}
?}
}

//?copy?constructor,
//拷貝構造函數的作用:
//(1)以類對象作為函數參數傳值調用時;
//(2)函數返回值為類對象;
//(3)用一個已定義的對象去初始化一個新對象時;

CMatrix::CMatrix?(const?CMatrix&?m)
{
??? iRow=m.Row();
iCol=m.Col();
????dMatData?=?new?double*[iRow];

for?(int?i=0;?i? {
dMatData[i]=?new?double[iCol];
for(int?j=0;j {
memcpy(dMatData[i]m.dMatData[i]sizeof(double)*iCol);
}
?}
???
}

CMatrix::~CMatrix(void)
{
????for?(int?i=0;?i? {
delete[]?dMatData[i];
?}
delete[]?dMatData;
}

//返回數組元素(引用返回)
double&?CMatrix::operator?()?(int?row?int?col)
{
????if?(row?>=?iRow?||?col?>=?iCol)
{
??????throw(?“CMatrix::operator():?Index?out?of?range!“);
}

????return?dMatData[row][col];?
}

////返回數組元素(重載)
double?CMatrix::operator?()?(int?row?int?col)?const
{
????if?(row?>=?iRow?||?col?>=?iCol)
{
??????throw(?“CMatrix::operator():?Index?out?of?range!“);
}

????return?dMatData[row][col];?
}


//重載預算符+
CMatrix?operator?+?(const?CMatrix&?m1const?CMatrix&?m2)
{

???if((m1.Col()!=m2.Col())?||(m1.Row()!=m2.Row())?)
???{
???????throw(?“CMatrix::operator+:?The?two?matrix?have?different?size!“);
???}

???CMatrix?matTmp(m1.Row()m1.Col());
???for(int?i=0;i???{
???for(int?j=0;j ???{
?????????????matTmp(ij)=m1(ij)+m2(ij);?????
???}
???}
???return?matTmp;
}

//重載賦值運算符=,當左右兩邊矩陣的大小不相等時,
//以右邊的大小為基準調整左邊矩陣的大小

CMatrix?&CMatrix::operator?=?(const?CMatrix&?m)?
{
//revised?in?2011-4-1?by?Daiwujiao
?//???if(iRow!=m.Row()||iCol!=m.Col())
//{
?//???????throw(?“CMatrix::operator=:?The?two?matrix?have?different?size!“);
//}

if(iRow!=m.Row()||iCol!=m.Col())
{
SetSize(m.Row()m.Col());
}
for?(int?i=0;?i? {

for(int?j=0;j {
dMatData[i][j]=m(ij);
}
?}
????return?*this;
}


//調整矩陣大小,原有值不變
void?CMatrix::SetSize?(int?row?int?col)
{
???if?(row?==?iRow?&&?col?==?iCol)
???{
??????return;
???}

???double?**rsData?=?new?double*[row];
??? for?(int?i=0;?i? {
rsData[i]=?new?double[col];
for(int?j=0;j {
rsData[i][j]=0;
}
?}

int?minRow=(iRow>row)?row:iRow;
????int?minCol=?(iCol>col)?col:iCol;
????int??colSize?=?minCol?*?sizeof(double);
????

???for?(int?i=0;?i????{
??????memcpy(?rsData[i]?dMatData[i]?colSize);
???}

????for?(int?i=0;?i? {
?????????delete[]?dMatData[i];
}
delete[]?dMatData;
dMatData=rsData;
????iRow=row;
iCol=col;
????return;
}
//重載預算符-
CMatrix?operator?-?(const?CMatrix&?m1const?CMatrix&?m2)
{

???if((m1.Col()!=m2.Col())?||(m1.Row()!=m2.Row())?)
???{
???????throw(?“CMatrix::operator-:?The?t

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2018-01-19?13:30??Matrix\
?????文件????????7449??2015-10-22?21:01??Matrix\Matrix.cpp
?????文件????????1159??2015-10-15?21:56??Matrix\Matrix.h

評論

共有 條評論

相關資源