Я хочу создать пользовательский словарь, который не копирует свои ключи (просто сохраняет).
Внутренне я планирую использовать NSMutableArray
со специальным объектом Pair, где первый объект парыявляется ключом, а второе - значением.
Все ключи уникальны.
Чтобы быстро получать объекты по ключам, я бы использовал алгоритм двоичного поиска - поэтому массив должен бытьSORTED (внимание!) По адресам памяти первых объектов пар.
(кстати, именно поэтому я отказался использовать CFDictionaryRef со специальным набором обратных вызовов -Я подозреваю, что он понижается до O (n) в случае, если разумный хеш не будет предоставлен)
Это плохая идея, если предположить, что:
- Объекты, используемые в качестве ключей,внутреннее изменение (то есть я не могу использовать
isEqual:
вместо сравнения адресов); - Объекты, используемые в качестве ключей, НЕ собираются освобождаться (что разумно - они сохраняются специальным объектом Pair, аПара удерживается интернойl NSArray).
Почему это плохо (или хорошо)?
Как получить адрес памяти из указателя?Просто приведите его к long long int
или что-то в этом роде?
Спасибо!