C++ reverse是干嘛的
时间: 2025-01-16 21:09:22 浏览: 84
### C++ `reverse` 函数的作用及用法
#### 作用
`reverse` 是 C++ 中的一个标准库算法,用于原地反转给定范围内的元素顺序。该函数接受两个迭代器作为参数,分别指向要反转序列的第一个位置和最后一个位置之后的位置。
#### 头文件
为了使用 `reverse` 函数,程序中需包含 `<algorithm>` 头文件[^4]。
```cpp
#include <algorithm>
```
#### 基本语法
`std::reverse(begin_iterator, end_iterator)` 将 `[begin_iterator, end_iterator)` 范围内元素的顺序颠倒过来。
- `begin_iterator`: 迭代器,指向要处理区间的第一个元素。
- `end_iterator`: 迭代器,指向要处理区间最后一个元素后的那个位置。
#### 使用示例
##### 反转 Vector 容器
下面的例子展示了如何利用 `reverse()` 来改变向量内部存储整型数据项的排列次序:
```cpp
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> vec;
// 向vec填充0到9共十个数字
for (int i = 0; i < 10; ++i) {
vec.push_back(i);
}
cout << "翻转前:" << endl;
for (auto& elem : vec) {
cout << elem << " ";
}
cout << endl;
// 对整个vec执行反向操作
reverse(vec.begin(), vec.end());
cout << "翻转后:" << endl;
for (const auto& elem : vec) {
cout << elem << " ";
}
return 0;
}
```
这段代码会先打印原始状态下的数值列表,接着调用 `reverse()` 方法使这些值按相反方向重新排序并再次显示出来[^1]。
##### 数组部分区域反转
除了能够处理 STL 容器外,还可以针对普通数组的部分片段实施局部逆转效果:
```cpp
#include <cstdio>
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
const int size = 5;
int arr[size] = {1,2,3,4,5};
cout<<"初始状态下:"<<endl;
for(int i=0;i<size;++i){
printf("%d ",arr[i]);
}
cout<<endl;
//仅对前三个元素进行反转
reverse(&arr[0],&arr[3]);
cout<<"只反转前三项的结果如下:"<<endl;
for(int j=0;j<size;++j){
printf("%d ",arr[j]);
}
return 0;
}
```
此实例说明了即使对于固定大小的传统数组结构也完全可以借助于 `reverse()` 实现灵活控制特定子集的行为模式[^2]。
阅读全文
相关推荐


















