函数原型,定义
std::reverse
定义于头文件 <algorithm>
(1)
template< class BidirIt >
void reverse( BidirIt first, BidirIt last );(C++20 前)
template< class BidirIt >
constexpr void reverse( BidirIt first, BidirIt last );(C++20 起)
(2)
template< class ExecutionPolicy, class BidirIt >
void reverse( ExecutionPolicy&``& policy, BidirIt first, BidirIt last ); (C++17 起)
- 反转 [first, last) 范围中的元素顺序
表现如同应用 std::iter_swap 到对于非负 i < (last-first)/2 的每对迭代器 first+i, (last-i) - 1 - 同 (1) ,但按照 policy 执行。此重载仅若 std::is_execution_policy_v<std::decay_t> 为 true 才参与重载决议。
可能实的现:
template<class BidirIt>
void reverse(BidirIt first, BidirIt last)
{
while ((first != last) && (first != --last)) {
std::iter_swap(first++, last);
}
}
应用实例
#include <vector>
#include <iostream>
#include <iterator>
#include <algorithm>
int main()
{
std::vector<int> v{1,2,3};
std::reverse(std::begin(v), std::end(v));
for(auto e : v) std::cout << e;
std::cout << \'\\n\';
int a[] = {4, 5, 6, 7};
std::reverse(std::begin(a), std::end(a));
for(auto e : a) std::cout << e;
}
输出:
321
7654
继续阅读与本文标签相同的文章
上一篇 :
留仙洞总部基地建设加速
下一篇 :
LeetCode21 合并两排序链表
-
第三讲,Ceph内部构件
2026-05-18栏目: 教程
-
日本发明AI女友,中国却发明AI主持人,这就是差距!
2026-05-18栏目: 教程
-
《华西通信》行业深度:Wi-Fi6同步5G启航,共享万物互
2026-05-18栏目: 教程
-
不用纠结NSA与SA网络!对于5G手机来说,体验基本一致
2026-05-18栏目: 教程
-
你对自己的网站拥有所有权吗?
2026-05-18栏目: 教程
