C++ 标准库 - <algorithm>

C++ std::reverse 原地交换区间两端元素,直到中间,使序列倒序。要求双向迭代器。

原型

template<class BidirIt>
void reverse(BidirIt first, BidirIt last);

参数

  • first, last:要反转的半开区间。

返回值

无返回值。

示例

#include <algorithm>
#include <iostream>
#include <vector>

int main() {
    std::vector<int> v = {1, 2, 3, 4};
    std::reverse(v.begin(), v.end());
    for (int x : v) {
        std::cout << x << " ";
    }
    std::cout << std::endl;
    return 0;
}

输出:

4 3 2 1 

注意事项

只反转子区间时传入对应迭代器即可,例如 reverse(v.begin() + 1, v.end() - 1)。复制到新序列且倒序可用反向迭代器或先 copy 再 reverse。

下一页介绍min_element:最小元素位置。