星期六, 7月 14, 2007

Linked List

為什麼寫這個東西?自己無聊,想寫了一個模仿STL形式的Linked List,本身具有Iterator type,我另外寫了一個class,再用

template<class T>
class LinkListIterator{
/* ... */
};

template<class T>
class LinkList{
friend class LinkListIterator<T>
public:
typedef LinkListIterator<T> iterator;
/* ... */
};
這樣子我們就可以寫成
LinkList<int>::iterator iter=u.begin()
就某程度而言還蠻方便的。

為什麼要寫iterator,用STL的看法來看,你需要一個smart pointer(被包裝過的pointer)去詢訪整個cointainer,所以我這邊就模仿了一個(可是不怎麼成功,你還是可以對u.end()做deference的動作XD),這樣子就可以詢訪自己做的Linked List了,相當方便。

code

題外話就是,雖然概念很清楚,但是在細節的處理上花了很多時間,概念跟實作還是有實際上的差異,而且我還沒做利用iterator的相關運算,不過我覺得做為一個範本,也夠哩。

---
說穿了還是偷懶XD

張貼留言