使用boost::remove_copy实现容器内部元素的过滤
为了实现容器内部元素的过滤,我们可以使用Boost库中的remove_copy函数。这个函数接受一个输入容器和一个输出容器,并将输入容器中符合指定条件的元素复制到输出容器中。
接下来我们举一个例子,通过一个整数数组来演示该函数的使用方法。假设我们要将数组中大于等于5的元素复制到另一个数组中。
首先,我们需要引入boost库,并定义两个vector容器。代码如下:
#include <iostream>
#include <vector>
#include <algorithm>
#include <boost/range/algorithm/remove_copy.hpp>
using namespace std;
int main() {
// 定义两个vector容器
vector<int> input_vec{1, 2, 3, 4, 5, 6, 7, 8, 9};
vector<int> output_vec;
// 使用remove_copy函数进行过滤
boost::remove_copy(input_vec, back_inserter(output_vec), [](int x){return x<5;});
// 输出结果
cout << "input_vec: ";
for (aut