📜  用于反转数组的 stl 函数 - C++ (1)

📅  最后修改于: 2023-12-03 14:56:19.765000             🧑  作者: Mango

用于反转数组的 STL 函数 - C++

在 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);

其中,firstlast 均为迭代器,表示待反转数组的首尾位置,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::vectorstd::deque
  • reverse 函数操作的是原始数组,因此操作后该数组内容会被修改;
  • 当使用 std::reverse 函数反转自定义类型的数组时,需要重载该类型的 operator=operator== 运算符。

以上是关于用于反转数组的 STL 函数的简要介绍,希望对广大程序员有所帮助。