>  기사  >  백엔드 개발  >  표준 라이브러리를 사용하여 사용자 정의 유형을 정렬할 수 있습니까?

표준 라이브러리를 사용하여 사용자 정의 유형을 정렬할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-11-11 11:39:03130검색

Can You Sort User-Defined Types with the Standard Library?

표준 라이브러리를 사용하여 사용자 정의 유형 정렬

사용자 정의 데이터 유형 모음을 정렬할 때 프로그래머는 종종 해당 유형 내의 특정 필드 또는 속성을 기준으로 정렬 순서. 이 질문은 표준 라이브러리의 정렬 기능이 이러한 사용자 정의 가능한 정렬을 수용할 수 있는지 여부를 탐구합니다.

표준 정렬 사용

표준 라이브러리는 컨테이너. 이 메소드는 내부적으로 < 순서를 결정하는 연산자입니다. 사용자 정의 유형에 대한 표준 정렬을 활용하려면 유형에서 < 연산자를 사용하여 원하는 순서를 정의합니다.

예를 들어 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.