Игра похожа на шашки, поэтому доска представляет собой матрицу MxN. Я собираюсь реализовать игрока с искусственным интеллектом, которому потребуется искать в дереве игры, поэтому я буду много работать с доской. Мне нужно будет быстро скопировать, изменить его, получить доступ к его элементам и т. д.
Тип, представляющий одну клетку, будет необработанным указателем на класс Player (т. е. игрока, чья фигура находится на квадрат или ноль, если квадрат пуст).
Поэтому я ищу «тип», который
- Можно хранить двумерную матрицу необработанных указателей.
- Сохраняет информацию о размере матрицы, чтобы ее можно было запросить позже
Если есть больше типов, отвечающих требованиям, я ищу тот, у которого наименьшие накладные расходы (копирование — наиболее важная операция).
На данный момент std::mdspan и boost::multi_array — хороший кандидат, но я все еще ищу другие варианты.
Подробнее здесь: https://stackoverflow.com/questions/792 ... game-board