SGI

replace_if

类别:算法 组件类型:函数

原型

template <class ForwardIterator, class Predicate, class T>
void replace_if(ForwardIterator first, ForwardIterator last, Predicate pred
                const T& new_value)

说明

Replace_if替换范围内每个元素[first, last)其中pred返回true其中new_value. 即:对于每个迭代器i,如果pred(*i)true,则执行赋值*i = new_value.

定义

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

类型要求

前提条件

复杂性

线性的。Replace_if准确执行last - first应用程序pred,以及最多last - first赋值。

示例

将每个负数替换为0.
vector<int> V;
V.push_back(1);
V.push_back(-3);
V.push_back(2);
V.push_back(-1);

replace_if(V.begin(), V.end(), bind2nd(less<int>(), 0), -1);
assert(V[1] == 0 && V[3] == 0);

说明

另请参见

replace, replace_copy, replace_copy_if
[Silicon Surf] [STL Home]
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。 TrademarkInformation