Какую структуру я должен использовать для хранения этих объектов? - PullRequest
0 голосов
/ 12 декабря 2010

Я пытаюсь реализовать нечто похожее на игру управления полетом. Будет набор объектов, представляющих плоскости, которые появляются и удаляются «случайным образом». Индивидуальные самолеты могут быть затронуты и будут реагировать. Модель должна принимать индекс плоскости в качестве параметра при прикосновении к чему-либо.

Мои требования к хранению:

  1. Нужна быстрая итерация по всем элементам
  2. Нужна быстрая вставка / удаление
  3. Нужно быстро искать и индексировать по индексу

    • Что я должен использовать? NSMutableArray, NSMutableSet?
    • Должен ли я хранить каждый объект в двух местах? (например, набор для быстрой итерации, массив для быстрого поиска)?

Ответы [ 2 ]

1 голос
/ 12 декабря 2010

NSMutableArray достаточно, если вы хотите искать только по индексу.Проблема может заключаться в удалении, которое занимает O (n).Если вам не требуется сохранение индекса, вы можете удалить его в O (1), поместив последний элемент в удаляемый элемент и сократить массив на 1.

В этом случае хранение в двух местах будет медленным, посколькуэто не принесет никакого преимущества в скорости поиска, но потребует поддержки двух контейнеров.

0 голосов
/ 12 декабря 2010

Хранение в 2 местах кажется глупым.Массив должен быть в порядке, с o (n) итерацией, o (1) поиск по индексу.Я не знаком с целью-c, чтобы знать скорость удаления или вставки, но оба должны быть достаточно быстрыми, если используются некоторые средства копирования массивов системного уровня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...