2011-11-30 76 views

回答

3

STL容器使用迭代器而不是指針。如果你有一個指向鏈表的元素的迭代器,你可以通過它訪問元素的數據,使用列表的insert method插入迭代器的位置,並使用erase method在迭代器的位置刪除。

+0

是否可以「合成」一個迭代器並將其用作函數的參數? –

+1

@ blacklemon67:幾乎可以保證你沉浸在一種思維破碎的思路中。退出一點,然後用一個基於迭代器的接口設計你的程序到容器中,幾乎肯定會是一個很好的解決方案。 –

+0

@ blacklemon67:爲什麼綜合一個,你可以只有一個真正的迭代器? –

1

而不是使用STL鏈接列表,您可能想要使用指針定義您自己的鏈接列表實現。例如:

template <class E> 
struct Node { 
    E data; 
    Node * next; 
}; 

因此定義一個Node類,它將成爲鏈表中的一個元素。正如Kerrek SB所建議的那樣,從長遠來看,用迭代器重新設計程序可能會更快更好。