표준 라이브러리를 사용하여 사용자 정의 유형 정렬
사용자 정의 데이터 유형 모음을 정렬할 때 프로그래머는 종종 해당 유형 내의 특정 필드 또는 속성을 기준으로 정렬 순서. 이 질문은 표준 라이브러리의 정렬 기능이 이러한 사용자 정의 가능한 정렬을 수용할 수 있는지 여부를 탐구합니다.
표준 정렬 사용
표준 라이브러리는 컨테이너. 이 메소드는 내부적으로 < 순서를 결정하는 연산자입니다. 사용자 정의 유형에 대한 표준 정렬을 활용하려면 유형에서 < 연산자를 사용하여 원하는 순서를 정의합니다.
예를 들어 MyType 구조체를 고려하세요.
struct MyType { int a; int b; };
표준 정렬을 사용하여 a 필드를 기반으로 MyType의 벡터를 정렬하려면 다음을 구현합니다. < 다음과 같은 연산자:
bool operator < (const MyType& other) const { return this->a < other.a; }</p> <p>이 구현을 사용하면 다음을 사용하여 벡터를 정렬할 수 있습니다.</p> <pre class="brush:php;toolbar:false">std::sort(moo.begin(), moo.end());
사용자 정의 순서 기능 사용
또는 < 연산자를 사용하면 사용자 정의 순서 함수를 sort 메서드의 세 번째 인수로 전달할 수 있습니다. 이 함수는 두 요소 사이의 순서 관계를 나타내는 부울을 반환합니다.
예를 들어 MyType의 b 필드를 기준으로 정렬하려면
bool compareByB(const MyType& t1, const MyType& t2) { return t1.b < t2.b; }
그런 다음 정렬을 다음과 같이 호출합니다.
std::sort(moo.begin(), moo.end(), compareByB);
이 접근 방식을 사용하면 특히 여러 정렬 기준이 필요할 때 정렬 순서를 더 유연하게 지정할 수 있습니다.
위 내용은 표준 라이브러리를 사용하여 사용자 정의 유형을 정렬할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!