SGI

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开头的范围内,但除外predtrue的元素不会被复制。返回值是结果范围的结束位置。此操作是稳定的,即被复制的元素的相对顺序与范围[first, last).

中的顺序相同

定义

在标准头文件 algorithm 中定义,以及非标准向后兼容性头文件 algo.h 中定义。

的参数类型。

中的迭代器

复杂性线性。恰好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.
[Silicon Surf] [STL Home]
unique_copy 版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。