如何将二维向量传递给C++中的函数?

bso*_*dra 11 c++ 2d vector

如果它被传递,它是通过值还是通过引用传递的?

void printMatrix(vector<vector<int>> *matrix);

...

vector<vector<int>> matrix(3, vector<int>(3,0));
printMatrix(&matrix1);
Run Code Online (Sandbox Code Playgroud)

cas*_*nca 20

自您的函数声明:

void printMatrix(vector< vector<int> > *matrix)
Run Code Online (Sandbox Code Playgroud)

指定一个指针,它基本上是通过引用传递的.但是,在C++中,最好避免使用指针并直接传递引用:

void printMatrix(vector< vector<int> > &matrix)
Run Code Online (Sandbox Code Playgroud)

printMatrix(matrix1); // Function call
Run Code Online (Sandbox Code Playgroud)

这看起来像一个普通的函数调用,但它是通过引用传递的,如函数声明中所示.这样可以避免不必要的指针取消引用.