C++ reverse()函数用法详解
reverse() 是 C++ 标准库提供的一个函数,定义在
reverse() 函数的语法格式如下:
注意,reverse() 函数需要双向迭代器来工作,所以它可以与 std::vector、std::deque 和 std::list 之类的容器一起使用,但不能用于 std::set 和 std::map 这样的容器,因为它们的内部是有序的,不能做反转操作。
【实例】下面的C++程序演示了 reverse() 函数的用法。
<algorithm>
头文件中,用于反转一个序列的元素。无论是反转字符串,数组,还是其他任何容器的内容,都可以借助 reverse() 函数实现反转。所谓反转,就是将迭代器区间内的数据以完全对称的方式交换位置。在长度为 n 的区间中,将第 i (i 从 0 到 (n-1)/2 )个元素与第 n-i-1 个元素交换位置。
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