STL ソート関数を使用したリストのソート
STL ソート関数を使用してリストを降順にソートすると、コンパイル エラーが発生する場合がありますリストに構造体の項目が含まれており、コンパレータ関数が適切に定義されていない場合。 「'__last - __first' で 'operator-' に一致しません」というエラーは、並べ替え関数がリスト内の要素の順序を決定できないことを示します。
この問題は、並べ替え関数がランダム アクセス反復子を必要とするために発生します。 std::list
この問題を解決するには、std::sort の代わりに std::list
std::list
Result.poly.sort([](const term& t1, const term& t2) { return t2.pow < t1.pow; });
このカスタム コンパレータ関数はリストを適切に並べ替えます。各構造体の pow フィールドに基づいて降順で並べられた構造体の数。
以上がSTL ソートを使用してリストを降順に並べ替えると、「'__last - __first' に 'operator-' と一致するものがありません」というメッセージが表示されるのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。