首頁 >後端開發 >C++ >如何依特定變數對使用者定義類型的向量進行排序?

如何依特定變數對使用者定義類型的向量進行排序?

Susan Sarandon
Susan Sarandon原創
2024-11-15 01:36:02252瀏覽

How to Sort a Vector of User-Defined Types by Specific Variables?

按特定變數對向量中的使用者定義類型進行排序

為了按特定變數對使用者定義類型的向量進行排序,您有兩個選擇:使用標準庫排序或實現自己的排序功能。

使用標準函式庫排序

如果您的使用者定義型別實作「bool 運算子

struct MyType {
    int a;
    int b;
    bool operator<(const MyType& other) const {
        // Compare types based on a specific variable (e.g., a)
        return a < other.a;
    }
};

使用自訂排序函數

或者,您可以提供自訂排序函數或函子作為sort() 的第三個參數實作比較運算子。該函數應根據所需變數比較類型。例如:

bool type_is_less(const MyType& t1, const MyType& t2) {
    return t1.a < t2.a;
}

std::sort(moo.begin(), moo.end(), type_is_less);

此方法在以下情況下很有用:

  • 您不能或不想實現比較運算子。
  • 您需要對建置的進行排序-in 或不能重載的指標類型。
  • 您想在不同時間使用不同標準對序列進行排序。

以上是如何依特定變數對使用者定義類型的向量進行排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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