reverse函数用于反转序列,如vector{1,2,3,4,5}调用reverse后变为{5,4,3,2,1};rotate函数实现旋转,如rotate到begin+2将前两个元素移到末尾,结果为{3,4,5,1,2},常用于循环移位。

在C++中,reverse 和 rotate 是两个常用的序列操作函数,定义在 algorithm 头文件中。它们可以方便地对容器或数组中的元素进行反转和旋转操作。
reverse:反转序列
reverse 函数用于将指定范围内的元素顺序完全颠倒。
使用方法:
- 包含头文件:#include
- 调用方式:std::reverse(迭代器开始, 迭代器结束);(注意:结束是最后一个元素的下一个位置)
示例:
立即学习“C++免费学习笔记(深入)”;
vectorstd::reverse(nums.begin(), nums.end()); // 结果:{5, 4, 3, 2, 1}
也可以只反转部分区间:
std::reverse(nums.begin(), nums.begin() + 3); // 反转前3个元素rotate:旋转序列
rotate 函数将序列以某个中点“旋转”,把前一部分移到后面,后一部分移到前面。
调用方式:std::rotate(开始, 新起点, 结束);
一套面向小企业用户的企业网站程序!功能简单,操作简单。实现了小企业网站的很多实用的功能,如文章新闻模块、图片展示、产品列表以及小型的下载功能,还同时增加了邮件订阅等相应模块。公告,友情链接等这些通用功能本程序也同样都集成了!同时本程序引入了模块功能,只要在系统默认模板上创建模块,可以在任何一个语言环境(或任意风格)的适当位置进行使用!
意思是:从“开始”到“新起点”这部分会被移到末尾,从“新起点”到“结束”这部分会移到前面。
示例:
立即学习“C++免费学习笔记(深入)”;
vectorstd::rotate(nums.begin(), nums.begin() + 2, nums.end());
// 结果:{3, 4, 5, 1, 2} —— 前两个元素被移到末尾
常见用途:实现数组的循环左移或右移。例如,左移2位就等价于 rotate 到 begin+2。
实际应用场景
这两个操作在算法题中很常见:
- 反转字符串或数组:直接用 reverse
- 循环移位:用 rotate 比手动移动更简洁
- 构造特定排列:结合 reverse 可实现某些翻转排序逻辑
注意:这些操作适用于所有支持随机访问迭代器的容器,如 vector、array、string、普通数组(配合指针)等。
基本上就这些。掌握 reverse 和 rotate 能让代码更清晰,避免手写循环搬移元素。









