это на самом деле вопрос, который я бы пытался решить ...Начало набора объектов из NSSet с помощью HASH
мне нужно реализовать эту функциональность в NSSet ...
Я знаю, как хэш-таблицы и наборы работает .. и NSSet, похоже, сохраняет указатель на объекты внутри хеш-таблицы, используя HASH в качестве индекса этого массива ... когда в этот хэш попадает более одного объекта .. он использует isEqual для определения того, один из объектов - элемент, который мы ищем ... это означает ...
Значение HASH => указывает индекс массива указателей в хеш-таблице, а каждый из t указатели шлангов указывают на массив (или некоторую коллекцию), который содержит объекты с этим хешем (поскольку он выполняет итерацию по нему, чтобы определить, какой объект является членом) ... это довольно общая структура данных ...
My вопрос есть ... есть способ получить массив объектов, на которые указывает хэш-таблица ... Мне нужно ВСЕ объекты, которые имеют ОДНОВРЕМЕННУЮ СТОИМОСТЬ HASH внутри NSSet ...
Мне это нужно чтобы быстро обработать близость между точками ...
Есть ли способ? я знаю, что я могу использовать предикат, используя
[NSPredicate predicateWithFormat:@"hash == %u",hash];
но использует перечисление и не так быстро, как это должно быть (очень быстро)
Есть ли способ, или я должен создать хэш-таблицу из царапина? (или использовать фундамент основания)
Спасибо и извините за беспокойство!
, если он правильно реализован, каждый хэш должен быть уникальным, если это значение, и как таковое должно быть добавлено только в набор после –
, то, что я пытаюсь моделировать здесь, является «ХАШ» «ХАШ» (как указано в документах CFSet), где вы можете получить все значения, которые имеют тот же хеш в операции.как ... ([Set getWithHash: hash]) ... я могу получить это с предикатом, но производительность меня раздражает –
сохраните их в качестве словаря с хешем в качестве ключа .. или используйте NSHashTable или сверните свой собственный ... NSHashTable, вероятно, не то, что вы хотите ... словарь будет навязывать перезаписываемое поведение, если ваш хеш-файл не подходит, вы можете перезаписать объекты разными значениями. –