写一个矩阵类的方法有很多,比如在Introduction to C++ for FEer中提到了对于一些特殊的矩阵类型比如Sparse matrix,diagnal matrix,我们可以用map的嵌套来写相应的类型,具体做法如下,
typedef map<int,double> SparseRow;
template<int N>
struct SparseMatrix
{
map<int,SparseRow> mat;
};
矩阵的每一行是map类型,key的类型即为整型。
还可以用最基本的想法,就是定义一个三个数据成员的矩阵类模板,分别是行,列,指向第一个元素的指针。还可以使用nested vector实现矩阵类模板。这里我们谈一下如何使用nested vector实现matrix class以及matrix algebra,作用于versatile matrix object