C/Cpp / STL / map 的 key 为自定义的 struct 或者 class 时,有什么注意事项?
生活随笔
收集整理的這篇文章主要介紹了
C/Cpp / STL / map 的 key 为自定义的 struct 或者 class 时,有什么注意事项?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
答案:需要重載 struct 或者?class 的 operator < 。
原因:
因為 map 的底層是 RBTree,而 RBTree 的比較函數為如下圖所示:
而該 Compare 來自于 map 中向 RBTree 傳入的比較函數,如下圖所示:
less<Key>的函數源代碼如下所示:
如果,Key 為 struct 或者 class 時,就需要重載 operator < ,這樣就可以實現了自定義的 Key 的 map 的應用。
?
(SAW:Game Over!)?
總結
以上是生活随笔為你收集整理的C/Cpp / STL / map 的 key 为自定义的 struct 或者 class 时,有什么注意事项?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 内联函数有什么优点?内联函数与宏定义的区
- 下一篇: 如何判断一个类是否是线程安全(可重入)的