> 백엔드 개발 > C++ > 본문

C++에서 정렬 기능을 사용하는 방법

小老鼠
풀어 주다: 2024-03-25 17:58:47
원래의
1072명이 탐색했습니다.

C++의 정렬 기능은 컨테이너의 요소를 정렬하는 데 사용되는 유용한 STL 알고리즘 라이브러리 기능입니다. 기본 구문은 `sort(Iterator first, Iterator last)`입니다. 여기서 first와 last는 시퀀스의 시작 및 끝 위치를 정의하는 반복자입니다. 기본적으로 정렬 기능은 오름차순으로 정렬되지만 비교 기능을 제공하거나 '연산자<'를 오버로드하여 정렬을 맞춤설정할 수 있습니다. 사용자 정의 유형의 객체에 대해서는 비교 기능을 제공해야 합니다.

C++에서 정렬 기능을 사용하는 방법

C++에서 정렬 함수는 컨테이너의 요소를 정렬하는 데 사용되는 STL(표준 템플릿 라이브러리) 알고리즘 라이브러리의 매우 유용한 함수입니다. 이 함수는 헤더 파일에 정의되어 있으므로 사용하기 전에 이 헤더 파일을 포함해야 합니다.

sort 함수의 기본 구문은 다음과 같습니다.

cpp

#include <algorithm>  
#include <vector>  
  
std::sort(Iterator first, Iterator last);
로그인 후 복사

여기서 first와 last는 정렬할 시퀀스의 시작 위치와 끝 위치를 정의하는 반복자입니다. 마지막 반복자는 시퀀스의 "끝 위치"에 있는 다음 요소를 가리키므로 시퀀스의 실제 범위는 [first, last)입니다.

정렬 기능은 기본적으로 요소를 오름차순으로 정렬합니다. 사용자 정의 유형의 객체를 정렬해야 하는 경우 비교 기능이나 오버로드 연산자<를 제공해야 할 수도 있습니다.

다음은 정렬 기능을 사용하여 벡터를 정렬하는 방법을 보여주는 간단한 예입니다.

cpp

#include <iostream>  
#include <vector>  
#include <algorithm>  
  
int main() {  
    std::vector<int> numbers = {5, 2, 8, 1, 9};  
      
    std::sort(numbers.begin(), numbers.end());  
      
    for (int num : numbers) {  
        std::cout << num << &#39; &#39;;  
    }  
      
    return 0;  
}
로그인 후 복사

이 프로그램은 1 2 5 8 9를 출력합니다. 이는 오름차순으로 숫자 벡터의 요소입니다. 정렬된 결과를 순서대로 정렬합니다.

사용자 정의 유형의 개체를 정렬해야 하는 경우 비교 기능이나 오버로드 연산자<를 제공해야 합니다. 예를 들어 age 멤버 변수가 있는 Person 클래스가 있고 Person 개체를 나이별로 정렬한다고 가정합니다.

cpp

#include <iostream>  
#include <vector>  
#include <algorithm>  
  
class Person {  
public:  
    std::string name;  
    int age;  
      
    Person(const std::string& name, int age) : name(name), age(age) {}  
      
    // 重载 operator< 以便 sort 可以使用  
    bool operator<(const Person& other) const {  
        return age < other.age;  
    }  
};  
  
int main() {  
    std::vector<Person> people = {  
        {"Alice", 30},  
        {"Bob", 20},  
        {"Charlie", 25}  
    };  
      
    std::sort(people.begin(), people.end());  
      
    for (const auto& person : people) {  
        std::cout << person.name << ": " << person.age << std::endl;  
    }  
      
    return 0;  
}
로그인 후 복사

이 프로그램은 각 사람의 이름과 나이를 나이 오름차순으로 출력합니다. 정렬 함수가 Person 개체를 비교하는 방법을 알 수 있도록 연산자를 오버로드했습니다. 연산자

위 내용은 C++에서 정렬 기능을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿