Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ STL sort() 함수로 벡터를 내림차순으로 정렬하는 방법

이 튜토리얼에서는 C++의 STL(표준 템플릿 라이브러리)을 사용하여 벡터(vector)를 내림차순으로 정렬하는 방법을 자세히 살펴보겠습니다.

벡터를 내림차순으로 정렬하려면 STL 라이브러리에서 제공하는 sort() 함수를 사용합니다. sort() 함수는 기본적으로 오름차순으로 정렬되지만, 세 번째 인자로 greater<int>()와 같은 비교 함수자(functor)를 전달하면 손쉽게 내림차순 정렬을 구현할 수 있습니다.

예제 코드

#include <bits/stdc++.h>
using namespace std;

int main(){
    // 벡터 선언 및 초기화
    vector<int> a = { 1, 45, 54, 71, 76, 12 };

    cout << "Vector: ";
    for (int i = 0; i < a.size(); i++)
        cout << a[i] << " ";
    cout << endl;

    // 내림차순 정렬 수행
    sort(a.begin(), a.end(), greater<int>());

    cout << "Sorted Vector in descending order: ";
    for (int i = 0; i < a.size(); i++)
        cout << a[i] << " ";
    cout << endl;

    return 0;
}

실행 결과

Vector: 1 45 54 71 76 12
Sorted Vector in descending order: 76 71 54 45 12 1

코드 설명

sort(a.begin(), a.end(), greater<int>()) 구문이 핵심입니다. a.begin()a.end()는 정렬할 범위의 시작과 끝을 가리키는 반복자이며, 세 번째 인자인 greater<int>()는 첫 번째 요소가 두 번째 요소보다 클 때 참을 반환하는 비교 객체입니다. 이 비교 기준에 따라 벡터의 모든 요소가 큰 값부터 작은 값 순서로 재배치됩니다.

이 방식은 int뿐만 아니라 double, string 등 다양한 타입에도 동일하게 적용할 수 있어, C++에서 내림차순 정렬이 필요할 때 가장 널리 사용되는 방법입니다.