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
가 됩니다.