Я думал о хранении некоторых предметов ... и теперь я не знаю, что выбрать.
Итак, теперь у меня есть такой код:
std::map<std::string, Object*> mObjects;
Но, как я уже говорил здесь, он медленный из-за выделения std::string
при каждом поиске, поэтому ключ должен бытьцелое число.
Почему я выбрал std::string
в качестве ключа?Потому что очень легко получить доступ к объектам по их имени, например:
mObjects["SomeObj"];
Итак, моя первая идея:
std::map<int, Object*> mObjects;
, а ключ - это CRC имени объекта:
mObjects[CRC32("SomeObject")];
Но это немного нестабильно.И я знаю, что для этого есть специальные хэш-карты.И последнее, я должен отсортировать свои объекты на карте с помощью некоторой функции Compare
.
Любые идеи о контейнере, которые я могу использовать?
Итак, опять же, основные моменты:
- Доступ к объектам по строке, но ключи должны быть целыми числами, а не строкой
- Сортировка объектов на карте по какой-либо функции
пс. Увеличение допускается.