STL remove_copy函数

STL remove_copy函数算法

STL 中的 remove_copy() 函数用于将前两个正向迭代器参数指定的序列中的元素复制到第三个参数指定的目的序列中,并忽略和第 4 个参数相等的元素。

它返回一个指向最后一个被复制到目的序列的元素的后一个位置的迭代器。序列不能是重叠的。

STL remove_copy函数详解

头文件

#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函数

使用 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,如下图所示:

48_STL remove_copy函数.png

我们使用了 remove_copy 函数,实现了集合中删除元素。

STL remove_copy函数总结

STL 中的 remove_copy() 函数用于将前两个正向迭代器参数指定的序列中的元素复制到第三个参数指定的目的序列中,并忽略和第 4 个参数相等的元素。

它返回一个指向最后一个被复制到目的序列的元素的后一个位置的迭代器。序列不能是重叠的。