Я переношу научный код с Java на C++. Сообщите мне:
Двухмерный массив объектов в C++
a) Что не так с этими двумя функциями?
б) Как я могу решить проблему? Я могу использовать int**
как двухмерный массив, но не Agent**
.
Я получаю эту ошибку: «Нет оператора = соответствует этому операнду».
В обычном C мы могли бы назначить NULL указателям. Мы могли бы также использовать type**
как двухмерную матрицу (т. Е. a[i][j]
) (двумерное пространство для objectSpace
и agentSpace
выделено где-то еще).
int** objectSpace;
Agent** agentSpace;
void Space::removeAgentAt(Point p)
{
agentSpace[p.x][p.y] = NULL;
}
void Space::putAgentTo(Agent agent, Point p)
{
agentSpace[p.x][p.y] = agent;
}
Oli, мне нужно иметь массив агентов и измените массив, чтобы показать, где в пространстве находятся агенты. Не могли бы вы дать немного советов или любезно решение? – wmac
@wmac Знаете ли вы размеры массива во время компиляции или только во время выполнения? Скорее всего, вам лучше использовать стандартный контейнер библиотеки. – juanchopanza
К сожалению, размеры неизвестны, но пространство слишком велико. Он может содержать 1000 * 1000 ячеек. Я думал, что это слишком много для контейнеров. – wmac