SGI

替换_复制

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

原型

template <class InputIterator, class OutputIterator, class T>
OutputIterator replace_copy(InputIterator first, InputIterator last,
                            OutputIterator result, const T& old_value,
                            const T& new_value);

描述

替换_复制从范围复制元素[first, last)到范围[result, result + (last-first)),与任何元素相等的情况例外old_value未复制;new_value则复制。更确切地说,对于每个整数n相应0 <= n < last-first, 替换_复制执行赋值*(result+n) = new_value如果*(first+n) == old_value,并且*(result+n) = *(first+n)否则。

定义

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

对类型的要求

前置条件

复杂性

线性。替换_复制执行正好last - first相等比较和正好last - first赋值。

示例

vector<int> V1;
V1.push_back(1);
V1.push_back(2);
V1.push_back(3);
V1.push_back(1);

vector<int> V2(4);

replace_copy(V1.begin(), V1.end(), V2.begin(), 1, 99);
assert(V[0] == 99 && V[1] == 2 && V[2] == 3 && V[3] == 99);

说明

另请参阅

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