我对c ++很陌生,我不明白SMatrix<T>(int M)
在程序中做了什么。我在类模板中搜索了很多关于构造函数的内容,但这不是语法。据我所知,sMatrix<T>
是一种数据类型。以下是代码。
#ifndef T_SIMPLE_MATRIX_H
#define T_SIMPLE_MATRIX_H
#include <vector>
template<class T>
class SMatrix {
private:
// Storage
std::vector<T> v;
int N;
public:
SMatrix<T>(int M){v.resize(M*M);N = M;}
SMatrix<T>(){N = 0;}
void resize(int M){
v.resize(M*M);
N = M;
}
int size(){
return N;
}
// access matrix(r, c) (row and column) for R/W operations
T& operator() (int r, int c){
return v[N*r+c];
}
const T& operator()(int r, int c) const{
return v[N*r+c];
}
};
#endif //
答案 0 :(得分:0)
在课程模板中,SMatrix<T>
和SMatrix
意味着同样的事情。
您可以而且应该使用
SMatrix(int M){v.resize(M*M);N = M;}
SMatrix(){N = 0;}
具有相同的语义。