STL 中的 remove_copy() 函数用于将前两个正向迭代器参数指定的序列中的元素复制到第三个参数指定的目的序列中,并忽略和第 4 个参数相等的元素。
它返回一个指向最后一个被复制到目的序列的元素的后一个位置的迭代器。序列不能是重叠的。
#include <algorithm>
template <class InputIterator, class OutputIterator, class T>
OutputIterator remove_copy (InputIterator first, InputIterator last,
OutputIterator result, const T& val);
参数 | 描述 |
---|---|
first1 | 输入迭代器 |
last1 | 输入迭代器 |
result | 输出迭代器 |
value | 要输入的元素 |
它返回一个指向最后一个被复制到目的序列的元素的后一个位置的迭代器。序列不能是重叠的。
使用 STL remove_copy 函数删除元素
#include<iostream>
#include<algorithm>
#include <vector>
using namespace std;
int main()
{
std::cout << "嗨客网(www.haicoder.net)\n" << std::endl;
int myints[] = {10,20,30,30,20,10,10,20};
std::vector<int> myvector (8);
std::remove_copy (myints, myints+8, myvector.begin(), 20);
std::cout << "myvector contains:";
for (std::vector<int>::iterator it=myvector.begin(); it!=myvector.end(); ++it)
{
std::cout << ' ' << *it;
}
std::cout << '\n';
return 0;
}
我们在 Linux 下使用 g++ 进行编译,具体命令如下:
g++ remove_copy.cpp -std=c++11
编译后,我们直接运行生成的二进制文件 a.out
,如下图所示:
我们使用了 remove_copy 函数,实现了集合中删除元素。
STL 中的 remove_copy() 函数用于将前两个正向迭代器参数指定的序列中的元素复制到第三个参数指定的目的序列中,并忽略和第 4 个参数相等的元素。
它返回一个指向最后一个被复制到目的序列的元素的后一个位置的迭代器。序列不能是重叠的。