我传递了一个Iterator,我必须将它传递给另一个函数 - 但是要过滤掉,以便某些元素被跳过(这是一个指针范围,我想过滤掉NULL指针)。boost :: filter_iterator - 我将如何与STL做到这一点?
我搜索了“stl过滤器迭代器”以查看如何做到这一点,并且boost::filter_iterator出现了。
这看起来不错,我可以使用它,但我可以做到这一点与旧的STL好吗?当然,不要将这些元素复制到一个新的容器中。
我想我会创建另一个迭代器类,提供必要的begin()
,end()
等功能,并进行过滤?所以我完全必须重新实现boost
iterator_filter
...?
我有点不同意:升压可能会很麻烦,有时你不希望有额外的依赖。我认为不会重写`filter_iterator`的* real *原因在于它实际上很难(并且非常麻烦)正确地写入。 – 2011-08-07 20:12:43