'C++' std::reverse

토스트·2024년 12월 25일

'C++' std::algorithm

목록 보기
1/11

reverse

template<class BidirIt>
void reverse(BidirIt first, BidirIt last); // constexpr since C++20

C++ 17 ~

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

: 주어진 범위 내의 요소들을 역순으로 배열하는 기능을 제공합니다. 이 함수는 범위 내 요소들의 순서를 변경하며, 새로운 컨테이너를 반환하지 않고 원본 컨테이너를 수정합니다.

  • first : 역순으로 배열을 시작할 위치를 가리키는 양방향 반복자
  • last : 역순으로 배열을 종료할 위치의 뒤를 가리키는 양방향 반복자
  • policy : 실행 정책

실행 정책은 std::execution 헤더에 포함되어있습니다.

  • execution::seq : 순차 실행 (기본 값)
  • execution::par : 병렬 실행 (멀티코어 시스템에서 작업이 병렬로 수행됩니다.)
  • execution::par_unseq : 병렬 및 비순차 실행 (예를 들어, 5개의 요소가 있을 때 2번과 4번 요소가 바뀐 후 1번과 5번 요소가 바뀔 수 있습니다.)

<example>

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

using namespace std;

int main() {
    vector<int> vec = {1, 2, 3, 4, 5};

    // reverse 사용: 순서를 역으로 배열
    reverse(vec.begin(), vec.end()); 
    // vec.begin() : vec의 첫 번째 요소를 가리키는 반복자를 반환합니다.
    // vec.end() : vec의 마지막 요소의 뒤를 가리키는 반복자를 반환합니다.

    for (const int & num : vec) {
        cout << num << " ";
    } 

    return 0;
}

결과값

0개의 댓글