나는 벡터 배열을 정의하고이 배열을 함수에 전달하려고합니다. ?벡터 배열을 함수에 전달하는 방법
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);
가 내가 뭘 잘못 알고하지 않습니다
나는 항상 다음과 같은 오류가 발생합니다. 일반적으로 그 작업을 수행하는 가장 안전하고 안전한 방법은 무엇입니까? VLA (가변 길이 배열) C++에서 비 표준 때문이다
template<int rows, int cols>
void gridlist(std::vector<int> (&grid)[rows][cols]){
}
int main()
{
const int rows=4;
const int cols=5;
std::vector<int> grid[rows][cols];
gridlist(grid);
}
코드에서 추가 변화가, int rows=4;
const int rows=4;
에 :
벡터의 벡터 또는 'std :: array'벡터를 사용하는 것이 좋습니다. – MikeCAT
좋은 별 2 개 프로그래머가 std :: vector ** grid를 사용하여 시도 했습니까, 아니면 배열 크기를 유형 매개 변수로 전달 하시겠습니까? –
lorro
벡터 벡터를 전달하지 않는 이유는 무엇입니까? –