Я определил массив векторов и хочу передать этот массив функции.Как передать массив векторов функции
Вот мой код:
void gridlist(std::vector<int> *grid, int rows, int cols){
..... }
int rows=4;
int cols=5;
std::vector<int> grid[rows][cols];
gridlist(grid,rows,cols);
Единственный метод, который работает для меня, чтобы передавать массивы в функции была указателем (*?).
Я пробовал различный метод в соответствии со следующими описаниями: Passing a 2D array to a C++ function, но мне не удалось заставить его работать.
Я всегда получаю следующее сообщение об ошибке:
could not convert '(std::vector<int> (*)[cols])(& grid)' from 'std::vector<int> (*)[cols]' to 'std::vector<int>'
gridlist(grid,rows, cols);
Я не знаю, что я делаю неправильно. Что, в общем, считается лучшим/безопасным методом для выполнения этой задачи?
Использование вектора векторов или 'std :: array' векторов кажется хорошим. – MikeCAT
Вы пробовали, как добрый двухзвездочный программист, используя std :: vector ** grid, или вы хотите, чтобы размеры массивов передавались как параметры типа? –
lorro
Почему бы вам просто не пройти вектор векторов? –