📜  将二维向量传递给函数 - C++ (1)

📅  最后修改于: 2023-12-03 15:09:33.986000             🧑  作者: Mango

将二维向量传递给函数 - C++

在C++中,我们可以使用二维向量来存储二维数据。如果我们需要将二维向量传递给函数,我们需要使用传址或引用的方式传递,以避免传递整个向量的副本。

传递二维向量的方法
1. 传地址
void function(vector<vector<int>>* vec) {
    // 通过指针操作向量
    (*vec)[0][0] = 100;
}

int main() {
    vector<vector<int>> vec = {{1, 2}, {3, 4}};
    function(&vec);  // 通过地址传递
    cout << vec[0][0];  // 输出100
    return 0;
}
2. 传引用
void function(vector<vector<int>>& vec) {
    vec[0][0] = 100;
}

int main() {
    vector<vector<int>> vec = {{1, 2}, {3, 4}};
    function(vec);  // 通过引用传递
    cout << vec[0][0];  // 输出100
    return 0;
}
推荐使用传引用

在C++中,传引用是更加常用的传递方式,因为语法更加简洁,而且不会因为使用指针而引起的一些问题,比如指针为空指针等。

注意事项
  • 在函数中操作二维向量时,需要使用[]符号进行访问和修改元素,不可以使用迭代器遍历向量。
  • 在传递二维向量时,需要保证向量是已经初始化的,否则会出现访问空指针的错误。
  • 如果需要在函数中修改二维向量中的元素,需要使用传址或引用的方式传递,因为传递整个副本的效率会很低。
总结

在C++中,通过传址或引用的方式可以传递二维向量给函数,操作方便灵活,使用起来也较为简单。需要注意的是,在传递二维向量时要保证已经初始化,并使用[]操作符访问和修改元素。