首页 > 编程笔记

C++ reverse()函数用法详解

reverse() 是 C++ 标准库提供的一个函数,定义在<algorithm>头文件中,用于反转一个序列的元素。

所谓反转,就是将迭代器区间内的数据以完全对称的方式交换位置。在长度为 n 的区间中,将第 i (i 从 0 到 (n-1)/2 )个元素与第 n-i-1 个元素交换位置。

无论是反转字符串,数组,还是其他任何容器的内容,都可以借助 reverse() 函数实现反转。

reverse() 函数的语法格式如下:
template <class BidirectionalIterator>
void reverse(BidirectionalIterator first, BidirectionalIterator last);
first 和 last 用于指定要转换的数据范围[first, last)

注意,reverse() 函数需要双向迭代器来工作,所以它可以与 std::vector、std::deque 和 std::list 之类的容器一起使用,但不能用于 std::set 和 std::map 这样的容器,因为它们的内部是有序的,不能做反转操作。

【实例】下面的C++程序演示了 reverse() 函数的用法。
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>

int main() {
    std::vector<int> vec = {1, 2, 3, 4, 5};
    std::reverse(vec.begin(), vec.end());
    std::cout << "Reversed vector: ";
    for(int i : vec) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    std::string str = "Hello World!";
    std::reverse(str.begin(), str.end());
    std::cout << "Reversed string: " << str << std::endl;

    return 0;
}
执行结果为:

Reversed vector: 5 4 3 2 1
Reversed string: !dlroW olleH

推荐阅读