У меня есть неупорядоченная карта объектов, например:
unordered_map<int, shared_ptr<Tile>>
Я хочу создать свой Tile
только один раз, и использовать его всякий раз, когда я могу. Как я могу сохранить это наиболее эффективным способом внутри карты и получить к ней доступ позже?
Я думал о простом поиске индекса и, если он был найден, о создании нового индекса с тем же элементом. Тем не менее, это не похоже на работу.
Код такой:
pair<int, shared_ptr<Tile>> pair = make_pair(id, tile);
if (this->tiles.count(id) > 0) {
this->tiles[cacheCounter--] = this->tiles.at(id);
} else {
this->tiles.insert(pair);
}
И результат примерно такой:
Как вы можете видеть, пустые пространства должны состоять из существующих плиток.
Задача ещё не решена.
Других решений пока нет …