| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 427 人关注过本帖
标题:[分享]重传
只看楼主 加入收藏
chenchao
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-5-20
收藏
 问题点数:0 回复次数:3 
[分享]重传
dy4AxVb3.rar (1.71 KB) [分享]重传


搜索更多相关主题的帖子: 分享 
2006-05-20 19:28
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

//***提建议,我觉得可以优化一下(虽然我也不知道对不对):
//这是你的一部分
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;

}


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-20 21:39
wfpb
Rank: 6Rank: 6
等 级:贵宾
威 望:29
帖 子:2188
专家分:0
注 册:2006-4-2
收藏
得分:0 

这是我的想法,觉得简单些:
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);
}

[此贴子已经被作者于2006-5-20 21:40:34编辑过]


[glow=255,red,2]wfpb的部落格[/glow] 学习成为生活的重要组成部分!
2006-05-20 21:40
chenchao
Rank: 1
等 级:新手上路
帖 子:45
专家分:0
注 册:2006-5-20
收藏
得分:0 

多谢。我在用你的程序作一边.

2006-05-20 23:37
快速回复:[分享]重传
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025853 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved