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 中定义。类型要求
-
ForwardIterator是一个 正向迭代器 模型。
-
ForwardIterator是可变的。
-
Predicate是一个 谓词 模型。
-
ForwardIterator值类型可转换为Predicate参数类型。
-
T可转换为正向迭代器值类型。
-
T是 可赋值的。
前提条件
复杂性
线性的。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
版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。
TrademarkInformation