一个C++矩阵类的实现

#ifndef _MATRIX_H_

#define _MATRIX_H_

#include <vector>

using std::vector;


/*类功能:矩阵类

 *原理:采用数组的数组来实现

*/

template<typename T>

class SeqMatrix

{

public:

explicit SeqMatrix(size_t row=0,size_t col=0)

:arrayList(row)

{

for(size_t i=0;i<row;++i)

arrayList[i].resize(col);

}


SeqMatrix(const SeqMatrix &matrix)

:arrayList(matrix.rows())

{

for(size_t i=0;i<matrix.rows();++i)

{

arrayList[i].resize(matrix.colums());

arrayList[i]=matrix[i];

}

}


virtual ~SeqMatrix()

{

}


void resize(size_t row,size_t col)

{

arrayList.resize(row);

for(size_t i=0;i<row;++i)

arrayList[i].resize(col);

}


const size_t rows() const

{

return arrayList.size();

}


const size_t colums() const

{

if(arrayList.size()>0)

return arrayList[0].size();


return 0;

}


vector<T>& operator[](size_t row)

{

return arrayList[row];

}


const vector<T>& operator[](size_t row) const

{

return arrayList[row];

}


SeqMatrix& operator=(const SeqMatrix &rhs)

{

if(this==&rhs)

return *this;


resize(rhs.rows(),rhs.colums());

for(size_t i=0;i<rhs.rows();++i)

arrayList[i]=rhs[i];

}


private:

vector<vector<T>> arrayList;

};




#endif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值