我正在使用数据结构制作一个库: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>
,所以我想使用 boost 外观,所以如果我决定对我的数据结构进行更改,事情会更容易。谢谢。