我想从矩阵类中提取一列,该类具有将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。

10-07 12:52
查看更多