xxxx18一60岁hd中国/日韩女同互慰一区二区/西西人体扒开双腿无遮挡/日韩欧美黄色一级片 - 色护士精品影院www

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

資源簡介

C++矩陣計(jì)算類,可實(shí)現(xiàn)矩陣加減乘轉(zhuǎn)置求逆等計(jì)算

資源截圖

代碼片段和文件信息

#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,
//拷貝構(gòu)造函數(shù)的作用:
//(1)以類對象作為函數(shù)參數(shù)傳值調(diào)用時(shí);
//(2)函數(shù)返回值為類對象;
//(3)用一個(gè)已定義的對象去初始化一個(gè)新對象時(shí);

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;
}

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

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

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

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


//重載預(yù)算符+
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;
}

//重載賦值運(yùn)算符=,當(dāng)左右兩邊矩陣的大小不相等時(shí),
//以右邊的大小為基準(zhǔn)調(diào)整左邊矩陣的大小

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;
}


//調(diào)整矩陣大小,原有值不變
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;
}
//重載預(yù)算符-
CMatrix?operator?-?(const?CMatrix&?m1const?CMatrix&?m2)
{

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

?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????目錄???????????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

評論

共有 條評論

相關(guān)資源