我想创建一个不复制其键的自定义字典(保留)。基于整数地址的比较器
在内部,我打算使用带有特殊Pair对象的NSMutableArray
,其中对的第一个对象是关键字,第二个对象是值。
钥匙都是独一无二的。
为了快速检索键上的对象,我会使用二分搜索算法 - 所以数组应该被排序(注意!)内存地址对的第一个对象。
(顺便说一句,这就是为什么我拒绝使用CFDictionaryRef有一组特殊的回调的 - 我怀疑它的情况下,降解为O(N)时,将无法提供合理的散列)
是这是一个坏主意,假定:作为键
- 对象可以在内部(即,我无法使用
isEqual:
代替地址比较)变化; - 用作键的对象不会被解除分配(这是合理的 - 它们由特殊的Pair对象保留,而Pair由内部NSArray保留)。
为什么它不好(或好)?
如何从指针获取内存地址?只需将它投射到long long int
或类似的东西?
谢谢!
“我如何从指针获取内存地址?”一个指针值*是一个内存地址... – Richard 2011-02-07 15:50:46