我有一个类 Sparse_Matrix 可以让我有效地处理稀疏矩阵。
我想通过使用特定(惯用的)关键字(例如 Upper、Identity 等)来实例化一个特定的矩阵。
这是我的类声明(命名空间矩阵)
template <typename T>
class Sparse_Matrix
{
private:
int rows;
int cols;
std::vector<int> col;
std::vector<int> row;
std::vector<T> value;
...
有没有办法获得一个预初始化的对象?
Sparse_Matrix<int> = Eye(3);
将返回一个 3×3 单位矩阵。
我看过构造函数习语,但那些需要一些与我的类不兼容的软静态类型(尽管我愿意接受建议)。
我也试过这段代码:
template <typename T>
Sparse_Matrix<T> Eye(int size)
{
Sparse_Matrix<T> ma;
ma.IdentityMatrix(size);
std::cout << "Eye!" << std::endl;
return ma;
}
...
Sparse_Matrix<int> blah = Eye(10);
但无济于事。
谢谢,
SunnyBoyNY