我在制作一个使用数据结构的库: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