std::map 的關鍵要求
在使用std::map 時,會出現一個關於鍵類必須具備的特徵的常見問題充當有效的密鑰。
先決條件非常簡單:金鑰類別必須提供複製和賦值功能。映射內的實際順序由第三個模板參數或建構函數參數(如果指定)決定。此參數通常預設為 std::less 要自訂鍵排序,您可以建立一個比較運算符,最好是作為函數物件。以下是假設類型 MyType 的此類運算子的範例: 請注意,此比較運算子必須定義嚴格的排序。具體來說,如果 CmpMyType()(a, b) 傳回 true,則 CmpMyType()(b, a) 必須傳回 false。如果兩個表達式的計算結果均為 false,則元素被視為相等且屬於同一等價類。透過遵守這些要求,您可以擴展密鑰類別的功能,以有效地充當 std::map 中的有效密鑰。 struct CmpMyType
{
bool operator()(MyType const& lhs, MyType const& rhs) const
{
// Implementation of the comparison logic...
}
};
以上是類別必須滿足哪些關鍵要求才能用作 std::map 中的鍵?的詳細內容。更多資訊請關注PHP中文網其他相關文章!