STL 정렬 함수를 사용하여 목록 정렬: 구현 문제
std::sort 함수를 사용하여 구조 목록을 정렬하려고 할 때 , 연산자가 누락되었음을 나타내는 컴파일 오류가 발생할 수 있습니다. 이 오류는 제공된 비교기인 SortDescending이 std::sort에 필요한 임의 액세스 반복자가 아닌 양방향 반복자를 지원하는 std::list의 요소에서 작동할 때 발생합니다.
이 문제를 해결하려면 다음을 사용하는 대신 std::sort에서는 목록을 구체적으로 처리하도록 설계된 std::list
Result.poly.sort(SortDescending());
를 사용하여 수정된 코드입니다. std::list<>::sort 멤버 함수에도 비교기 함수가 필요합니다. SortDescending 비교기는 변경되지 않습니다.
struct SortDescending { bool operator()(const term& t1, const term& t2) { return t2.pow < t1.pow; } };
SortDescending 비교기와 함께 std::list<::sort를 활용하면 'pow' 멤버를 기준으로 목록을 내림차순으로 성공적으로 정렬할 수 있습니다. '용어' 구조.
위 내용은 왜 `std::sort`가 구조의 `std::list`를 정렬하지 못합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!