C ++ 2D массив, чтобы функционировать, когда размер является переменным - PullRequest
0 голосов
/ 08 ноября 2018

Мне нужно передать 2D массив структуры в функцию.

struct Point {  
  int x, y;
  double f, g, h;
  int parentX, parentY;
  int status;
};

int main(int argc, char* argv[])
{
  Point grid[fieldX][fieldY];
  void something(grid){}
}

Как?

1 Ответ

0 голосов
/ 08 ноября 2018

У вас есть много вариантов:

Использование std::vector Это делает это очень просто:

std::vector<std::vector<Point>> Grid;

void something(std::vector<std::vector<Point>> &grid) { ...

Если вы знаете, что размер будет установлен во время компиляции всегда, используйте std::array:

typedef std::array<std::array<Point, YDimSize>, XDimSize> Grid;
Grid grid;

void something(Grid &grid) { ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...