c++ - boost::filter_iterator——我将如何使用 STL 做到这一点?

标签 c++ stl boost filter iterator

我收到了一个迭代器,我必须将它传递给另一个函数——但经过过滤以便跳过某些元素(这是一个指针范围,我想过滤掉 NULL 指针)。

我在谷歌上搜索了“STL filter iterator”以查看如何执行此操作,并且 boost::filter_iterator上来了。

这看起来不错,我可以使用它,但我也可以使用良好的旧 STL 来实现吗?当然,无需将元素复制到新容器中。

我想我必须创建另一个迭代器类来提供必要的 begin()end() 等函数并进行过滤?所以我必须重新实现 boost iterator_filter...?

最佳答案

你是对的;您实际上是在自己重新创建过滤器迭代器。 我的建议是使用 Boost 的 filter_iterator。 Boost 作为 c++ 最常用的外部库具有特殊地位;许多 c++ 委员会成员帮助编写了 boost 库。它的无处不在本质上使它几乎保持原样;真的没有理由在这里重新发明轮子。

关于c++ - boost::filter_iterator——我将如何使用 STL 做到这一点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/789954/

相关文章:

c++ - C++在目录中对文件名进行排序

c++ - 标准 C++14 委员会草案是否公开?

c++ - Qt获取信号调用者并逐行从文件中读取

c++ - std::unique_ptr,自定义删除器和类型更改

c++ - 如何重置 shared_ptr?

c++ - boost ptime 线程安全与否?

c++ - Boost::serialization - 如何序列化需要数据分配但没有默认构造函数的数据结构?

c++ - 基于可变参数函数参数调用类函数会导致错误

c++ - 我用 Cuda 编写的全局函数只运行最后一个 block

c++ - std::error_category 可以跨 dll 使用吗?