표준 라이브러리 정렬을 사용하여 사용자 정의 유형 정렬
질문:
표준 라이브러리 정렬을 사용할 수 있습니까? 라이브러리 정렬 기능은 내부의 특정 필드를 기반으로 사용자 정의 구조체의 벡터를 정렬하는 데 사용됩니다. 구조체?
예:
struct MyType { int a; int b; }; vector<MyType> moo; // Insert data into moo... // Sort moo by the value of the 'a' field
답변:
예, 표준 라이브러리 정렬 기능이 이 시나리오를 처리할 수 있습니다. 사용자 정의 유형이 특정을 충족하는 경우 요구 사항:
구현:
struct MyType { int a; int b; bool operator<(const MyType& other) const { // Implementation that compares the 'a' fields } // Copy constructor MyType(const MyType& other) : a(other.a), b(other.b) { } // Other constructors... };
순서 함수를 사용하는 대체 접근 방식:
오버로드하는 경우 비교 연산자를 사용할 수 없는 경우 순서 함수나 펑터를 대신 세 번째 인수로 사용할 수 있습니다. 정렬 기능.
bool type_is_less(const MyType& t1, const MyType& t2) { // Comparison logic } std::sort(c.begin(), c.end(), type_is_less);
이 접근 방식은 다음과 같은 경우에 유용할 수 있습니다.
위 내용은 표준 라이브러리 정렬 기능이 특정 필드를 기준으로 사용자 정의 유형을 정렬할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!