基于两个集合的类的自定义迭代器

时间:2010-04-20 15:21:35

标签: c++ iterator set

我有一个包含两组的类。它们都包含相同的密钥类型,但具有不同的比较操作。

我想为迭代两个集合的元素的类提供迭代器。我想从一组开始,然后当我增加指向第一组的最后一个元素的迭代器时,我想转到第二组的第一个元素。我该怎么做呢?我想保留std :: set的双向迭代器语义,但如果事实证明实现一个前向迭代器要容易得多,那就这样吧。

如果有帮助,我愿意使用Boost Iterator库。

1 个答案:

答案 0 :(得分:2)

我使用boost库实现了一个非常相似的迭代器:

从这里阅读: http://www.boost.org/doc/libs/1_42_0/libs/iterator/doc/iterator_facade.html#a-basic-iterator-using-iterator-facade

对于前向迭代器,您需要实现operator ++,将其更改为需要实现运算符的双向迭代器。

实施取决于您,但所有内容都在文档中进行了解释。