キーをコピーしない(そのまま保持する)カスタム辞書を作成したい。整数アドレスに基づくコンパレータ
内部的には、NSMutableArray
をペアの最初のオブジェクトがキーで、2番目が値である特別なペアオブジェクトで使用する予定です。
キーはすべて一意です。
キー上のオブジェクトをすばやく検索するために、バイナリ検索アルゴリズムを使用します。配列は、最初のオブジェクトののメモリアドレスに配列される必要があります。
(私はコールバックの特別なセットでCFDictionaryRefを使用することを拒否した理由ところで、これは - 私は、合理的なハッシュが提供されないだろうというとき、それは場合にはO(n)に分解することが疑われる)
されていますこの悪い考え、それを想定して:キーとして使用
- オブジェクトは(つまり、私が代わりにアドレス比較の
isEqual:
を使用することはできません)内部で変更される可能性があり、 - キーとして使用されるオブジェクトは割り当て解除されません(これは合理的です - 特殊なペアオブジェクトによって保持され、ペアは内部NSArrayによって保持されます)。
なぜ悪い(または良い)のですか?
ポインタからメモリアドレスを取得するにはどうすればよいですか? long long int
などにキャストするだけですか?
ありがとうございました!
"ポインタからメモリアドレスを取得する方法は?"ポインタ値は*メモリアドレスです... – Richard
私はそれが内部的にわかっています:)しかし、私はいつもポインタ値を直接< and >と比較することはできないと考えていました。 – wh1t3cat1k