0
我有四個班,其中兩個迭代器:我的const和非const鏈接列表迭代器有什麼不同?
LinkedList<T> -- holds the pointer to dummy node
LinkedListNode<T> -- Node with next and previous pointers and data T
LinkedListIterator<T> -- holds a pointer to LinkedListNode
LinkedListConstIterator<T> -- holds a pointer to LinkedListNode
他們倆只需要實現前向迭代器的功能。
在這種情況下,我的const迭代器中的函數會有什麼不同?這是否意味着當我返回一個指針或任何給用戶時,我應該把它設置爲const?
理想情況下,你的'LinkedListConstIterator'將它的指針保存爲'const LinkedListNode *',因此關於返回類型的決定更加明顯:「const」變體遍歷底層節點和值的常量視圖 - 除非要允許編輯列表結構(例如,刪除指向的元素通過一個常量迭代器),在這種情況下,您需要遍歷節點的非常量視圖,可能是'LinkedListNode *'。 –
seh
2014-10-09 20:05:00