std :: unordered_map с повторяющимися элементами, хранящимися как ссылки в разных ключах

У меня есть неупорядоченная карта объектов, например:

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);
}

И результат примерно такой:

введите описание изображения здесь

Как вы можете видеть, пустые пространства должны состоять из существующих плиток.

0

Решение

Задача ещё не решена.

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

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

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