remove_copy_if
|
|
类别:算法 |
组件类型:函数 |
原型
template <class InputIterator, class OutputIterator, class Predicate>
OutputIterator remove_copy_if(InputIterator first, InputIterator last,
OutputIterator result, Predicate pred);
描述
Remove_copy_if将范围内的元素复制到[first, last)以result开头的范围内,但除外pred为true的元素不会被复制。返回值是结果范围的结束位置。此操作是稳定的,即被复制的元素的相对顺序与范围[first, last).
中的顺序相同
定义在标准头文件 algorithm 中定义,以及非标准向后兼容性头文件 algo.h 中定义。
-
类型要求InputIterator
-
是 输入迭代器 的模型。OutputIterator
-
类型要求是 输出迭代器 的模型。是 输入迭代器 的模型。的值类型可转换为
-
中值类型的集合。Predicate
-
类型要求是 谓词 的模型。中值类型的集合。的值类型可转换为
的参数类型。
-
[first, last)前提条件
- 是一个有效范围。输出范围内有足够的空间来存储已复制的值。即,如果存在n[first, last)个不满足pred的元素,则[result, result+n)前提条件
-
result不是范围[first, last).
中的迭代器
复杂性线性。恰好last - firstpred个线性。恰好的应用程序,最多个赋值。
示例vector<int> V1;
V.push_back(-2);
V.push_back(0);
V.push_back(-1);
V.push_back(0);
V.push_back(1);
V.push_back(2);
vector<int> V2;
remove_copy_if(V1.begin(), V1.end(),
back_inserter(V2),
bind2nd(less<int>(), 0));
用另一个矢量的非负元素填充一个矢量。
说明
另请参阅, copy, remove, remove_if,
remove_copy, unique.
unique_copy
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。