std::map 的鍵:要求和實作
當使用std::map 映射不同類別的物件時,您使用的類別打算用作密鑰可能無法滿足有效密鑰的必要要求。 std::map 使用排序機制組織其內容,這提出了是否任何任意類別都可以作為鍵或是否存在特定要求的問題。
std::map 的鍵必須遵守以下規則要求:
映射的排序由第三個模板參數或建構子參數控制,預設為std::less 確保您的比較運算子定義嚴格的順序。如果 CmpMyType()( a, b ) 傳回 true,則 CmpMyType()( b, a ) 必須傳回 false。當兩者都傳回 false 時,元素被認為是等效的並且屬於同一等價類。 struct CmpMyType
{
bool operator()( MyType const& lhs, MyType const& rhs ) const
{
// Implementation of comparison logic
}
};
以上是任何類別都可以作為 std::map 的鍵嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!