Каковы преимущества и недостатки следующих способов создания карты, предназначенной для представления двумерной сетки. Сетка должна быть заполнена в любой точке, без выделения памяти для всего, поэтому я не просто использовал 2d-массив.Каковы преимущества карты карт против std :: pair в качестве ключа
std::map<int, std::map<int, Tile*>* >* tiles;
std::map<std::pair<int, int>, Tile*>* tiles;
Если у вас есть другая идея, сообщите мне. Извините, если это вопрос, который задают много.
Поскольку ключи в 'std :: map' упорядочены, вы можете, конечно, перебрать все элементы с определенной координатой x. Начните с первого ключа, по крайней мере, такого же размера, как make_pair (x, INT_MIN), и продолжайте с последующими клавишами, пока вы не достигнете конца или не найдете тот, чья координата x отличается. То, что вы не можете сделать ни с какой-либо структурой данных, легко проходит через элементы с определенной координатой y. – rici
Значит, проблема с памятью или скоростью не решена? В настоящее время я обращаюсь к нему по мере того, как получаю карту, координата x которой меня направляет, а затем получает фрагмент, координата y которого меня направляет с этой карты. Я думал об этом, так как основная карта - это карта столбцов, столбцов и карт плиток. – rekh127