C++에서 reverse() 함수는

문자열(string), 벡터(vector), 배열 등의 순서를 뒤집을 때 사용하는 함수이다.

 

또한, 전체뿐 아니라 특정 구간만 뒤집는 것도 가능하다.

 


1. 기본 개념

reverse() 함수는 지정한 구간의 순서를 반대로 뒤집는다.

예를 들어:

abcde 를 reverse 하면,
edcba 가 된다.

 

 

2. 사용 방법

//reverse() 함수는 <algorithm> 헤더에 포함되어 있다.
#include <algorithm>

//기본형태
reverse(시작 반복자, 끝 반복자);

//예시
reverse(v.begin(),v.end());

 

 

3. 문자열(string) 뒤집기

#include <iostream>
#include <algorithm>
#include <string>

using namespace std;

int main() {

    string s = "hello";

    reverse(s.begin(), s.end());

    cout << s; // 출력값: olleh

    return 0;
}

 

 

4. 벡터(vector) 뒤집기

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

using namespace std;

int main() {

    vector<int> v = {1,2,3,4,5};

    reverse(v.begin(), v.end());

    for(int i : v)
        cout << i ; // 출력: 54321

    return 0;
}

 

 

5. 배열(array) 뒤집기

#include <iostream>
#include <algorithm>

using namespace std;

int main() {

    int arr[5] = {1,2,3,4,5};

    reverse(arr, arr + 5); // 인덱스 시작부터 ~ 인덱스 5 전까지 뒤짚는다.
                           // arr+5는 마지막 원소 다음 칸을 가리킴
                           // 앞은 포함 뒤는 미포함

    for(int i=0 ; i<5 ; i++)
        cout << arr[i]; //54321

    return 0;
}

 

 

6. 일부 구간만 뒤집기

reverse()는 전체가 아니라 원하는 구간만 뒤집을 수도 있다.

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

using namespace std;

int main() {

    vector<int> v = {1,2,3,4,5};

    // 인덱스 1 포함 ~ 인덱스 4 전까지 뒤짚어라 (2,3,4) -> (4,3,2)
    reverse(v.begin() + 1, v.begin() + 4);

    for(int i : v)
        cout << i <<; // 결과값: 14325

    return 0;
}

 

 

 

7. 최종 요약

reverse() 함수는 문자열, 벡터, 배열 등의 순서를 반대로 뒤집을 때 사용하는 함수이다.

사용하려면 <algorithm> 헤더를 포함해야 하며, 기본 형태는 다음과 같다.

reverse(시작 위치, 끝 위치);
 

이때 범위는 시작 위치는 포함하고, 끝 위치는 포함하지 않는다.

 

reverse(v.begin() + 1, v.begin() + 4);
 

는 인덱스 1부터 인덱스 4 전까지,

즉 인덱스 1 ~ 3 구간만 뒤집는다는 의미이다.

+ Recent posts