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