Уже есть ли некоторый станд.:: основанный на векторе набор/реализация Map?

Надеюсь, я понимаю ваш вопрос:

Во-первых, чтобы отправить сообщение от одного агента другому, вы можете использовать функцию отправки. Если ваше сообщение отправляется от агента1 к агенту2, чтобы отправить X, вы будете использовать: send (X, agent2)

Во-вторых, в соединениях с вашим агентом вы будете определять сообщения как int и в полученном вами сообщении. можно сделать Y=Y+msg; connections Обратите внимание, что msg - это X, полученный от агента 1.

РЕДАКТИРОВАТЬ: отправленное сообщение можно прочитать только в элементе соединений, как я уже говорил ... в вашем случае, когда вы используете переменную-посредник при переходе, вы используете переменную-посредник агента, а не ту, которая было отправлено. Единственный способ сделать это так, как я только что показал вам.

11
задан Anteru 16 January 2009 в 16:49
поделиться

5 ответов

Я просто наткнулся на Ваш вопрос, надежда не слишком поздний.

Я рекомендую большую библиотеку (с открытым исходным кодом) по имени Loki. Это имеет основанную на векторе реализацию ассоциативного контейнера, который является общедоступной заменой для станд.:: карта, названная AssocVector.

Это предлагает лучшую производительность для доступа к элементам (и худшую производительность для вставок/удалений).

Библиотека была записана автором Andrei Alexandrescu современного Дизайна C++.

Это также содержит некоторый другой действительно изящный материал.

4
ответ дан 3 December 2019 в 09:21
поделиться

Если бы Вы ничто не можете найти подходящим, я просто перенес бы станд.:: вектор, чтобы сделать вид () на вставке и реализации находит () использующий lower_bound (). Это должно быть прямым, и столь же эффективным как настраиваемое решение.

3
ответ дан 3 December 2019 в 09:21
поделиться

Если набор или карта действительно будут маленькими, то производительность, полученная путем микрооптимизации структуры данных, будет иметь мало ни к каким значимым эффектам. Вы сохраните, возможно, одну или две памяти (чтение: кэш) поиски при поиске крошечного дерева по сравнению с крошечным вектором, который в большом изображении незначителен.

Однако Вы могли дать hash_map попытку. Поиски ключом, как гарантируют, будут работать в постоянное время.

2
ответ дан 3 December 2019 в 09:21
поделиться

Я не знаю никакую подобную реализацию, но существуют некоторые функции, которые помогают работе с отсортированными векторами уже в STL, такой как lower_bound и upper_bound.

2
ответ дан 3 December 2019 в 09:21
поделиться

Возможно, Вы ищете и незаказанный набор незаказанной карты. Попытайтесь смотреть на TR1, незаказанный контейнеры, которые полагаются на хеширование или Повышение. Неприказанная контейнерная библиотека. Под интерфейсом я не уверен, используют ли они действительно станд.:: вектор, но я держал бы пари, что на это стоит смотреть.

0
ответ дан 3 December 2019 в 09:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: