我在製作一個使用數據結構的庫:std::vector<std::string>
。我需要滿足API,它說,爲了通過我的數據迭代結構的用戶就必須做到以下幾點:自定義迭代器
for (lib::result::const_iterator it = data.begin(); it != data.end(); it++)
有兩種方法我能做到這一點,我自己實現lib::result::const_iterator
或繼承std::vector<std::string>::iterator
,他們都應該工作。我已經讀過,從矢量迭代器繼承是一個壞主意。
我決定使用Boost迭代器外觀,這是一個好主意嗎? 另外,我在執行increment()
時遇到問題。如果我有一個指向std :: vector中的字符串的指針,我該如何指向下一個字符串?
最後,我的實現可以從std::vector<std::string>
改變,以std::vector<MyDatatype>
,所以我想用升壓門面所以要是我決定更改我的數據結構,事情會更容易些。 謝謝。
你不需要繼承,只是'typedef'它 – 2013-03-07 14:52:19