【稀疏矩阵】:
定义:在N*N的矩阵中有效值的个数远小于无效值的个数,且这些数据的分布没有规律(下面这张图就是稀疏矩阵的一个例子:)
【稀疏矩阵的压缩存储】:
1)稀疏矩阵的存储:压缩存储值存储极少数的有效数据。使用{row,col,value}三元组存储每一个有效数据,三元组按原矩阵中的位置,以行优先级先后顺序依次存放。
template<typename T>
struct Tripe
{
Tripe()
{} //为resize()的第二个参数创建
Tripe<T>(const T& x,size_t row,size_t col)
:_value(x)
,_row(row)
,_col(col)
{}
T _value;
size_t _row;
size_t _col;
};
接下来我们就将这个三元组存储在数组里,因为我们在开辟一个空间的时候,我们并不知道要开多大,会造成很不方便,所以这里我们就用vector来进行存储,在存储的时候直接调用尾插。
tem