C++ 算法 reverse_copy()

2024年8月30日 | 阅读4分钟

C++ 算法 reverse_copy() 函数用于将范围 [first, last) 中的元素以相反的顺序复制到从 result 开始的另一个范围。

语法

注意:双向迭代器是一种迭代器,用于以向前和向后方向访问容器的任何元素。

参数

first:一个双向迭代器,指向范围中第一个元素的位置,该范围中的元素将被反转。

last:一个前向迭代器,指向正在反转元素的范围中最后一个元素的后一个位置。

result:输出迭代器,指向元素将被复制到的范围的初始位置。

返回值

此函数返回一个输出迭代器,指向被复制范围 [first, last) 的末尾,即修改后的元素序列将被复制到的位置。

复杂度

复杂度与范围 [first, last) 成线性关系:对每个元素执行一次赋值。

数据竞争

访问范围 [first, last) 中的对象。

result 和返回值之间的范围内的对象将被修改。

异常

如果元素赋值或迭代器操作抛出异常,此函数将抛出异常。

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

示例 1

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

输出

Before: 1 2 3 
After:  3 2 1

示例 2

让我们看另一个简单的例子来反转字符串

输出

Before Reverse: Hello Myself Nikita
After Reverse: atikiN flesyM olleH

示例 3

让我们看另一个简单的例子来反转数字范围

输出

The original vector v1 is:
 ( 0 1 2 3 4 5 6 7 8 9 ).
The copy v2 of the reversed vector v1 is:
 ( 9 8 7 6 5 4 3 2 1 0 ).
The original vector v1 remains unmodified as:
 ( 0 1 2 3 4 5 6 7 8 9 ).

示例 4

让我们看另一个简单示例

输出

Original order : 1. George  2.  John  3. Nikki  4. Alice  5.   Bob  6. Watson  

Reversing the order ... 
Reversed order : 1. Watson  2.   Bob  3. Alice  4. Nikki  5.  John  6. George  

下一主题C++ 算法