新微赢技术网

标题: [分享]重传 [打印本页]

作者: ‖蠻忝謃☆    时间: 2009-11-3 02:10
标题: [分享]重传
附件: 只有本站会员才能下载或查看附件,请您 登录 或 注册
作者: 追风少年    时间: 2009-11-3 02:10
//***提建议,我觉得可以优化一下(虽然我也不知道对不对):
//这是你的一部分
class Matrix
{
private:
int row;
int col;
public:
int ** p;
Matrix(int n);
Matrix(int m ,int n);
Matrix(const Matrix& A);
~Matrix();

Matrix& operator= (const Matrix& A);
int GetRow() const {return row;}
int GetCol() const {return col;}
friend std::ostream& operator<< (std::ostream& os ,const Matrix& A);
friend std::istream& operator>> (std::istream& is , Matrix& B);
};

Matrix operator* (const Matrix& A ,const Matrix& B);
Matrix::Matrix(int n)
{
row = n;
col = n;
p=new int * [row];
for(int i = 0 ; i < col ; i++)
p[i] = new int [col];
for(i = 0 ; i < row ;i++)
for(int j = 0 ; j < col ; j++)
*(*(p+i)+j) = 0;
}
Matrix::Matrix(int m ,int n)
{
row = m;
col = n;
p = new int * [row];
for(int i = 0 ; i < row ; i++)
p[i] = new int [col];
for(i = 0 ; i < row ;i++)
for(int j = 0 ; j < col ; j++)
*(*(p+i)+j) = 0;
}

Matrix::Matrix(const Matrix& A)
{
row = A.row;
col = A.col;
p = new int * [row];
for(int i = 0 ; i < row ; i++)
p[i] = new int [col];
for(i = 0 ; i < row ;i++)
for(int j = 0 ; j < col ; j++)
*(*(p+i)+j) = *(*(A.p+i)+j);
}
Matrix::~Matrix()
{
for(int i = 0 ; i < row ; i++)delete [] p[i]; delete [] p;
}
作者: 小猫钓鱼tp    时间: 2009-11-3 02:10
这是我的想法,觉得简单些:
class Matrix
{
int row;
int col;
vector<vector<int>>myArr;
public:
Matrix(int n);
Matrix(int m ,int n);
Matrix(const Matrix& A);
~Matrix();
Matrix& operator= (const Matrix& A);
int GetRow() const {return row;}
int GetCol() const {return col;}
friend std::ostream& operator<< (std::ostream& os ,const Matrix& A);
friend std::istream& operator>> (std::istream& is , Matrix& B);
friend Matrix operator* (const Matrix& A ,const Matrix& B);
};
//部分实现文件
Matrix::Matrix(int n,int m=0)
{
int r=row = n;
myArr.resize(n);
if(m==0)
{
col = n;
for(;r;r--)myArr[r].resize(n);
}
else
{
col = m;
for(;r;r--)myArr[r].resize(m);
}
}
Matrix::Matrix(const Matrix& A)
{
int r=row = A.row;
int c=col = A.col;
myArr.resize(r);
for (;c;c--)
myArr[r].resize(n);
}
Matrix::~Matrix()
{
int r=row;for(;r;r--)myArr[r].resize(0);
}
作者: 市井游侠々    时间: 2009-11-3 02:10
多谢。我在用你的程序作一边.




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2