How to pass 2-D vector to a function in C++?

后端 未结 3 1856
独厮守ぢ
独厮守ぢ 2020-12-29 11:05

If it is passed, is it passed by value or by reference?

void printMatrix(vector> *matrix);

...

vector> matr         


        
3条回答
  •  猫巷女王i
    2020-12-29 11:48

    Since your function declaration:

    void printMatrix(vector< vector > *matrix)
    

    specifies a pointer, it is essentially passed by reference. However, in C++, it's better to avoid pointers and pass a reference directly:

    void printMatrix(vector< vector > &matrix)
    

    and

    printMatrix(matrix1); // Function call
    

    This looks like a normal function call, but it is passed by reference as indicated in the function declaration. This saves you from unnecessary pointer dereferences.

提交回复
热议问题