我正在用 C++ 编写一个稀疏矩阵类,其中每一行和每一列都是来自我创建的类(恰当地命名为:LinkedList)的链表数组。
我想编写一个类,它是指向该矩阵中一个单元格的“智能”指针。
在那个类中,比如说LIPointer
,我将实现一个++
运算符函数,用于在矩阵的链表中移动。
每次创建linkedlistPointer
.
我不能使用stl::array
等,因为我必须自己构建它们。
以下是声明:
class LinkedItem
{
private:
int Column, Row;
double Value;
LinkedItem* Right;
LinkedItem* Down;
public:
...
};
class SparseLinkedMatrix
{
private: //members
int ColSize;
int RowSize;
LinkedItem ** Columns;
LinkedItem ** Rows;
public: //functions
SparseLinkedMatrix();
...
};
class LIPointer;
private:
LinkedItem * CellPointer;
public:
LIPointer();
void operator++();//???
...
};
任何建议或方向将不胜感激。
更新:它需要在整个矩阵上运行。这就是为什么我认为我需要移动(通过引用)数组和矩阵的大小。预期的效果是,这将从第一行的链表中的最后一个单元格到第二行中的第一个单元格。