0
我有這種情況:自定義迭代器:我如何跟蹤它?
我有一個跟蹤指針數組的類。我構建了一個循環遍歷這個數組的自定義迭代器。
我的問題是如何使它線程安全,特別是在遞增/遞減?
這裏是我有什麼相關部分的草案:
typedef fruit * iterator;
class fruits
{
private:
fruit ** flist;
int n; //keeps track of position in flist
int count; //number of fruits
public:
iterator begin() {n=0; return fruit[n];}
iterator end() {n=count; return fruit[n];}
iterator operator++()
{
return fruit[++n];
}
}
我看到的問題是,如果程序兩個部分組成創建一個迭代的事情是行不通的。 C++ STL如何處理它?
更新:我發現我的方式的錯誤。迭代器應該自己跟蹤它的位置。爲此我創建了一個嵌入到我的主類中的迭代器類。生活現在很好。
感謝在迭代器本身中保存其他狀態的想法。 – 2010-06-20 22:43:55