首頁 > 後端開發 > C++ > 任何類別都可以作為 std::map 的鍵嗎?

任何類別都可以作為 std::map 的鍵嗎?

Patricia Arquette
發布: 2024-11-26 08:05:11
原創
282 人瀏覽過

Can Any Class Serve as a Key for std::map?

std::map 的鍵:要求和實作

當使用std::map 映射不同類別的物件時,您使用的類別打算用作密鑰可能無法滿足有效密鑰的必要要求。 std::map 使用排序機制組織其內容,這提出了是否任何任意類別都可以作為鍵或是否存在特定要求的問題。

std::map 的鍵必須遵守以下規則要求:

  • 可複製性和可分配性:鍵類必須能夠被複製和

映射的排序由第三個模板參數或建構子參數控制,預設為std::less。預設情況下,std::less利用

struct CmpMyType
{
    bool operator()( MyType const& lhs, MyType const& rhs ) const
    {
        // Implementation of comparison logic
    }
};
登入後複製

確保您的比較運算子定義嚴格的順序。如果 CmpMyType()( a, b ) 傳回 true,則 CmpMyType()( b, a ) 必須傳回 false。當兩者都傳回 false 時,元素被認為是等效的並且屬於同一等價類。

以上是任何類別都可以作為 std::map 的鍵嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板