我想創建一個不復制其鍵的自定義字典(保留)。基於整數地址的比較器
在內部,我打算使用帶有特殊Pair對象的NSMutableArray
,其中對的第一個對象是關鍵字,第二個對象是值。
鑰匙都是獨一無二的。
爲了快速檢索鍵上的對象,我會使用二分搜索算法 - 所以數組應該被排序(注意!)內存地址對的第一個對象。
(順便說一句,這就是爲什麼我拒絕使用CFDictionaryRef有一組特殊的回調的 - 我懷疑它的情況下,降解爲O(N)時,將無法提供合理的散列)
是這是一個壞主意,假定:作爲鍵
- 對象可以在內部(即,我無法使用
isEqual:
代替地址比較)變化; - 用作鍵的對象不會被解除分配(這是合理的 - 它們由特殊的Pair對象保留,而Pair由內部NSArray保留)。
爲什麼它不好(或好)?
如何從指針獲取內存地址?只需將它投射到long long int
或類似的東西?
謝謝!
「我如何從指針獲取內存地址?」一個指針值*是一個內存地址... – Richard 2011-02-07 15:50:46