본문 바로가기
C++ 공부

[C++]Sort 함수란? 정렬, 오름차순, 내림차순

by honey달콤 2024. 7. 27.
반응형

C++ 표준 라이브러리에서 제공하는 sort 함수는 데이터를 정렬하는 데 사용됩니다. 이 함수는 algorithm 헤더 파일에 정의되어 있습니다. sort 함수는 일반적으로 std::sort로 사용되며, 다음과 같은 형태로 사용할 수 있습니다.

 

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

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

    // std::sort를 사용하여 벡터 정렬
    std::sort(vec.begin(), vec.end());

    // 결과 출력
    for (int n : vec) {
        std::cout << n << ' ';
    }
    return 0;
}

위 예제에서 std::sort 함수는 vec 벡터의 요소들을 오름차순으로 정렬합니다. std::sort 함수는 다음과 같은 세 가지 주요 오버로드를 제공합니다:

 

1. 기본 함수

template< class RandomIt >
void sort( RandomIt first, RandomIt last );

 

  •  

 

 

  • first: 정렬할 범위의 시작 반복자.
  • last: 정렬할 범위의 끝 반복자 (마지막 요소의 다음 위치)

2. 사용자 정의 비교 함수 

template< class RandomIt, class Compare >
void sort( RandomIt first, RandomIt last, Compare comp );

 

  • first: 정렬할 범위의 시작 반복자.
  • last: 정렬할 범위의 끝 반복자.
  • comp: 두 요소를 비교하는 데 사용될 사용자 정의 비교 함수 또는 함수 객체.

이 함수는 comp를 사용하여 요소들을 비교합니다. 예를 들어, 내림차순으로 정렬하려면 다음과 같이 사용할 수 있습니다:

#include <algorithm>
#include <vector>
#include <functional> // std::greater
#include <iostream>

int main() {
    std::vector<int> vec = {3, 1, 4, 1, 5, 9, 2, 6, 5};
    
    // 사용자 정의 비교 함수를 사용하여 벡터 내림차순 정렬
    std::sort(vec.begin(), vec.end(), std::greater<int>());

    // 결과 출력
    for (int n : vec) {
        std::cout << n << ' ';
    }
    return 0;
}
반응형

댓글