首頁  >  文章  >  後端開發  >  如何使用 STL 的排序函數對自訂結構清單進行降序排序?

如何使用 STL 的排序函數對自訂結構清單進行降序排序?

Barbara Streisand
Barbara Streisand原創
2024-11-09 04:44:02762瀏覽

How to Sort a List of Custom Structs in Descending Order Using STL's Sort Function?

使用STL 的排序函數對列表進行排序:克服編譯錯誤

在嘗試按降序對包含自定義結構體實例的列表進行排序時,遇到了編譯錯誤圍繞“結果”列表的“-”運算符不可用。此錯誤源自於排序函數對隨機存取迭代器的要求與 std::list::begin() 和 std::list::end() 傳回的雙向迭代器之間的不符。

解決此問題問題,建議使用 std::list::sort 成員函數,該函數專為與雙向迭代器一起使用而定制。此函數採用與 std::sort 相同的參數,並在內部採用針對清單最佳化的排序演算法。

以下範例說明如何針對特定場景使用std::list::sort 函數:

Result.poly.sort([](const term& t1, const term& t2) {
    return t2.pow < t1.pow;
});

透過此調整,編譯錯誤將得到解決,並且您的程式碼將根據其組成部分的'pow' 成員按降序對'poly' 清單進行排序「術語」元素。

以上是如何使用 STL 的排序函數對自訂結構清單進行降序排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn