在C++中,使用std::reverse
函数可以对指定范围内的元素进行翻转。这个函数位于头文件 <algorithm>
中。你可以通过指定范围来翻转容器中的一部分。例如,翻转一个vector
或string
的指定区域。
以下是一个示例代码,展示了如何对指定区域进行翻转:
#include <iostream>
#include <vector>
#include <algorithm> // std::reverse
void printVector(const std::vector<int>& vec) {
for (int num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
}
int main() {
std::vector<int> vec = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
std::cout << "Original vector: ";
printVector(vec);
// 指定翻转区域,从第2个元素到第7个元素(注意:区间是左闭右开 [start, end))
int start = 1; // 索引从0开始
int end = 7;
std::reverse(vec.begin() + start, vec.begin() + end);
std::cout << "Vector after reversing from index " << start << " to " << end - 1 << ": ";
printVector(vec);
return 0;
}
解释
#include <algorithm>
:包含std::reverse
函数的头文件。printVector
函数:一个辅助函数,用于打印vector
的内容。std::reverse
函数:接受两个迭代器,指定要翻转的区域。注意,区间是左闭右开[start, end)
,即包含起始位置但不包含结束位置。
示例输出
Original vector: 1 2 3 4 5 6 7 8 9 10
Vector after reversing from index 1 to 6: 1 7 6 5 4 3 2 8 9 10