我正在寫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++();//???
...
};
任何意見或方向,將不勝感激。
更新:它需要在整個矩陣上運行。這就是爲什麼我認爲我需要移動(通過引用)陣列和矩陣的大小。預期的效果是,這將從第一行的鏈表中的最後一個單元格到第二行中的第一個單元格。
我不確定你想要做什麼。在operator ++()中,你不能只是做CellPointer = CellPointer-> Right; ?當然,它只會在它到達矩陣的右端邊緣之前工作。 – csl 2008-12-30 10:17:21