33.假定按行的方式把对称矩阵的下三角区域储存在一个一维数组中。设计一个C++类lowerSymmetricMatrix,包含取值和存值方法。这两个方法的时间复杂度应为(1)
#includeusing namespace std; template class lowerSymmetricMatrix{ public : lowerSymmetricMatrix(int theRows = 0, int theColumns=0) { this->theColumns=theColumns; this->theRows=theRows; element= new T [theRows*theColumns]; }; ~lowerSymmetricMatrix(){ delete [] element;} void setelement(T a,int i=0,int j=0); T getelement(int i=0,int j=0); private: int theRows,theColumns; T *element; }; template T lowerSymmetricMatrix ::getelement(int i,int j){ return this->element[i+j+(i*(i-1))/2]; } template void lowerSymmetricMatrix ::setelement(T a,int i,int j){ element[i+j+(i*(i-1))/2]=a; }
在做这道题时有一个小问题,就是在类下面写方法的时候,不能完全复制。比如setelement(T a,int i=0,int j=0)就会报错,需要把初值删除。
报错如下



