我想从矩阵类中提取一列,该类具有将A
实现为<vector<vector<T> >
这样的my_matrix(,2)
这样的变量,并且应该提取第二列。另外,我也不需要函数名称get_col,因为我已经使用过operator()重载来提取行。我试过了:
template<class T>
vector<T> & operator()(void, const int& col){
vector<T> Result(rows,0);
for(int i=0;i<rows;++i)
Result[i]=this->A[i][col];
return Result;
}
有什么建议么?
该类包括:
template <class T> class QMatrix{
public:
int rows;
int cols;
vector<vector<T> > A;
最佳答案
func(,2)
在C++中不合法,无法实现。
您可以使用operator()
来访问矩阵中的一个单元格,并具有一个用于检索整行的row
函数和一个用于检索一列的col
函数。
或者,您可以重载operator[]
来获取列,但是我怀疑这会使您的用户感到困惑。我怀疑重载operator()
以获得单行也会使您的用户困惑,这不是C++-y。