📅  最后修改于: 2023-12-03 14:56:19.765000             🧑  作者: Mango
在 C++ 中,有一个内置的 STL 函数 reverse
,可以很方便地对数组进行反转操作,其函数的头文件为 <algorithm>
,下面是用法介绍。
reverse
函数有两个版本,分别是:
// 版本 1
template <class BidirectionalIterator>
void reverse (BidirectionalIterator first, BidirectionalIterator last);
// 版本 2
template <class BidirectionalIterator>
void reverse (BidirectionalIterator first, BidirectionalIterator last, Compare comp);
其中,first
和 last
均为迭代器,表示待反转数组的首尾位置,comp
是可选参数,表示比较函数,在此不进行详细介绍。
下面是一段示例代码,用于演示 reverse
函数的用法。
#include <iostream>
#include <algorithm>
#include <vector>
int main() {
std::vector<int> vec{1, 2, 3, 4, 5};
std::reverse(vec.begin(), vec.end());
for (auto const& i : vec) {
std::cout << i << " ";
}
// 输出:5 4 3 2 1
return 0;
}
reverse
函数所操作的序列必须支持双向迭代器,例如 std::vector
、std::deque
;reverse
函数操作的是原始数组,因此操作后该数组内容会被修改;std::reverse
函数反转自定义类型的数组时,需要重载该类型的 operator=
和 operator==
运算符。以上是关于用于反转数组的 STL 函数的简要介绍,希望对广大程序员有所帮助。