Обход и доступ через реализацию идентификатора hash_map & amp; вектор

Я проектирую ядро ​​моей программы и имею различные объекты, которые я в настоящее время перебираю, чтобы вызвать update(), У меня около десяти vectorСодержит мои объекты, хотя это может вырасти до гораздо большего количества в будущем. Я только что понял, что мне нужно будет посмотреть их через id довольно регулярно, поэтому я вынужден пройтись по всем элементам, чтобы найти правильный идентификатор.

Я думаю о создании hashmap который содержит id вместе с указателем на сам объект. Это самый эффективный способ сделать это? Идентификаторы являются полуслучайными, хотя они увеличиваются только во всей программе, причем каждый элемент в каждом из списков имеет уникальный идентификатор (каждый раз, когда назначается один, счетчик идентификаторов увеличивается). Элементы в векторах теперь часто удаляются и добавляются. Я не очень много работал с хэш-картами, кроме небольшого в Java, так что я не уверен, будет ли это эффективным путем. Я полагаю, что код все еще будет читабельным, но есть ли какие-либо параметры, кроме hash_map, которые лучше подходят для этого? Спасибо

0

Решение

Я не уверен, почему у вас есть 10 vectors — если объекты могут храниться в одном отсортированном vector, вы можете использовать binary_search чтобы найти объект (не забудьте отсортировать его после каждой вставки).

Конечно, hash_map также работает, за счет места / памяти.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]