C++ Algorithm replace()

30 Aug 2024 | 3 分钟阅读

C++ Algorithm replace() 函数用于在范围 [first, last) 中将所有等于 old_value 的值替换为 new_value。

此函数检查范围中的每个元素,如果它与指定值匹配,则替换它。

语法

参数

first:一个前向迭代器,指向范围中开始替换元素的初始位置。

last:一个前向迭代器,指向范围中停止替换元素的最终位置。

old_value:要被替换的元素的旧值。

new_value:分配给具有旧值的元素的新值。

返回值

复杂度

复杂度与 first 和 last 之间的距离呈线性关系。它比较每个元素并将其分配给匹配的元素。

数据竞争

访问和可能修改范围 [first1, last1) 中的对象。

异常安全

如果任何函数调用、赋值或迭代器操作抛出异常,则抛出异常。

请注意,无效参数会导致未定义行为。

示例 1

让我们看一个简单的例子来演示 replace() 的使用

输出

3,10,2,10,2,

在上面的例子中,向量 v 的元素 1 被替换为 10。

示例 2

让我们看另一个简单示例

输出

The original vector v1 is:
 ( 4 7 7 7 0 5 7 1 6 9 3 7 8 2 ).
The vector v1 with a value 700 replacing that of 7 is:
 ( 4 700 700 700 0 5 700 1 6 9 3 700 8 2 ).

在上面的例子中,replace() 查找向量 v1 中所有匹配 7 的元素,并将其替换为 700。

示例 3

让我们看另一个简单示例

输出

v : 1 4 3 2 3 10 7 9 3 8 
After replacing 3 with 6
v : 1 4 6 2 6 10 7 9 6 8

示例 4

让我们看另一个简单示例

输出

myvector contains: 10 99 30 30 99 10 10 99

下一主题C++ 算法