본문 바로가기

카테고리 없음

C++ STL sort 함수를 사용하여 오름차순과 내림차순으로 정렬하는 방법과 예제에 대해 알아봅시다.

1. 소개

C++ STL(sort) 함수는 컨테이너에 저장된 요소들을 정렬하는 데 사용되는 함수입니다. 이 함수는 효율적이고 간단한 방법으로 오름차순 및 내림차순으로 정렬할 수 있습니다. 정렬 알고리즘의 구현에 더 이상 고민하지 않고, 간결한 코드로 정렬할 수 있는 이점이 있습니다. 이번 섹션에서는 오름차순과 내림차순으로 정렬하는 방법과 예제를 소개하겠습니다.

2. 오름차순으로 정렬하는 방법과 예제

오름차순으로 정렬하는 방법은 간단합니다. C++ STL의 sort 함수를 사용하면 됩니다. sort 함수의 첫 번째 인자로 정렬할 컨테이너의 시작 iterator를 전달하고, 두 번째 인자로 정렬할 컨테이너의 끝 iterator를 전달합니다. 아래는 주어진 배열을 오름차순으로 정렬하는 예제입니다.

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

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

    std::sort(numbers.begin(), numbers.end());

    for (int num : numbers) {
        std::cout << num << " ";
    }

    return 0;
}

위 예제에서 vector<int> 타입의 numbers 벡터를 정의하고, sort 함수를 사용하여 numbers 벡터를 오름차순으로 정렬한 뒤 출력하고 있습니다. 실행 결과는 1 3 4 5 9가 됩니다.

3. 내림차순으로 정렬하는 방법과 예제

내림차순으로 정렬하는 방법은 sort 함수를 조금 수정하여 사용하면 됩니다. 기본적으로 sort 함수는 오름차순으로 정렬하므로, 내림차순으로 정렬하려면 세 번째 인자로 비교 함수를 전달해야 합니다. 비교 함수는 두 개의 인자를 받아서 첫 번째 인자가 두 번째 인자보다 작으면 true를 반환해야 합니다. 그렇게 하면 sort 함수는 비교 함수를 통해 요소의 순서를 결정하게 됩니다. 아래는 주어진 배열을 내림차순으로 정렬하는 예제입니다.

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

// 비교 함수 정의
bool compare(int a, int b) {
    return a > b;
}

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

    // 내림차순으로 정렬
    std::sort(numbers.begin(), numbers.end(), compare);

    for (int num : numbers) {
        std::cout << num << " ";
    }

    return 0;
}

위 예제에서는 compare 함수를 정의하여 첫 번째 인자가 두 번째 인자보다 큰 경우 true를 반환하도록 하였습니다. sort 함수의 세 번째 인자로 compare 함수를 전달하여 요소들을 내림차순으로 정렬하고 있습니다. 실행 결과는 9 5 4 3 1가 됩니다.