对称矩阵的基本操作及其压缩存储
来源:互联网 发布:淘宝驳回售后服务 编辑:程序博客网 时间:2024/06/14 12:49
#include<iostream>using namespace std;template<class T>class SymmetricMatrix{public:SymmetricMatrix(int* a, size_t N):_row(N),_col(N){ size_t index=0; _pData =new T[N*(N+1)>>1]; for(int i=0;i<N;i++) { for(int j=0;j<=i;j++) { _pData[index++]=a[i*N+j]; } }}T& Acess(int row, int col){//上三角 if(row<col) std::swap(col,row); return _pData[row*(row+1)/2+col];} const T& Acess(int row, int col)const{ //上三角 if(row<col) std::swap(col,row); return _pData[row*(row+1)/2+col];}~SymmetricMatrix(){ if(_pData) { delete[] _pData;_pData=NULL; }}//ostream& operator<<(ostream& _cout,const Complex& c)//<<//{////if(c._image>-0.000001&&c._image<0.000001)// _cout<<c._real;//else// _cout<<c._real<<"+("<<c._image<<")i";//return _cout;//}template<typename T>friend ostream& operator<<(ostream& _cout,const SymmetricMatrix<T>& s){for(size_t i=0;i<s._row;i++) { for(size_t j=0;j<s._col;j++)_cout<<s.Acess(i,j)<<" ";_cout<<endl; } return _cout;}private:T* _pData;size_t _row;size_t _col;};int main(){ int a[5][5] = { {0, 1, 2, 3, 4}, {1, 0, 1, 2, 3}, {2, 1, 0, 1, 2}, {3, 2, 1, 0, 1}, {4, 3, 2, 1, 0}};SymmetricMatrix<int> sm((int*)a,sizeof(a)/sizeof(a[0]));int res=sm.Acess(2,3); cout<<sm; return 0;}
0 0
- 对称矩阵的基本操作及其压缩存储
- 对称矩阵的压缩存储
- 对称矩阵的压缩存储
- 对称矩阵的压缩存储
- 对称矩阵的压缩存储
- 对称矩阵的压缩存储
- ~对称矩阵的压缩存储~
- 对称矩阵的压缩存储
- 对称矩阵的压缩存储
- 对称矩阵的压缩存储
- 对称矩阵的压缩存储
- 对称矩阵的压缩存储及基本运算(1)
- 对称矩阵的压缩存储及基本运算(2)
- 对称矩阵的压缩存储及基本运算(3)
- 对称矩阵的压缩存储及基本运算
- 第九周对称矩阵的压缩存储及基本运算
- 矩阵-----对称矩阵及其压缩存储&&稀疏矩阵
- 对称矩阵、稀疏矩阵的压缩存储
- C#项目5.4
- vbs脚本demo
- Hibernate分页实现
- java.lang.NoClassDefFoundError: org/apache/log4j/Level的解决方案
- Dogs vs. Cats Redux: Kernels Edition
- 对称矩阵的基本操作及其压缩存储
- Form表单传递List数组属性到后台对象中
- Python实现互联网笔试题-今日头条-3个一组的试题
- *** glibc detected *** malloc(): memory corruption(一)
- mysql索引
- Android动画之View Animation(视图动画)
- Java API 小结
- 值得深思的面试题
- pom.xml解释