remove_copy
|
|
类别:算法 |
组件类型:函数 |
原型
template <class InputIterator, class OutputIterator, class T>
OutputIterator remove_copy(InputIterator first, InputIterator last,
OutputIterator result, const T& value);
说明
remove_copy将不等于value的元素从范围[first, last)复制到以result开头的范围中。返回值为结果范围的结尾。此操作是稳定的,这意味着复制元素的相对顺序与在范围中相同[first, last).
定义
在标准头文件和非标准的后向兼容性头文件中定义 algorithmalgo.h。类型要求
-
InputIterator是 输入迭代器 模型。
-
OutputIterator是 输出迭代器 模型。
-
InputIterator值类型可转换为OutputIterator值类型集中的类型。
-
T是 相等可比性 模型。
- 类型T的对象可以与InputIterator值类型中的对象进行比较,以确定是否相等。
先决条件
-
[first, last)是有效的范围。
- 输出范围中有足够的储存空间来储存复制的值。也就是说,如果有n个元素不等于[first, last),则value[result, result+n)不是范围是有效的范围。
-
result中的迭代器[first, last).
复杂度
线性。具体为last - first个相等比较以及最多last - first次赋值。示例
在标准输出中打印向量的所有非零元素。vector<int> V;
V.push_back(-2);
V.push_back(0);
V.push_back(-1);
V.push_back(0);
V.push_back(1);
V.push_back(2);
remove_copy(V.begin(), V.end(),
ostream_iterator<int>(cout, "\n"),
0);
注意
另请参见
copy, remove, remove_if, remove_copy_if,
unique, unique_copy.
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。
商标信息