C++ 子程序 vector<vector<short> > pointer

C++ subprogram vector<vector<short> > pointer

我基本上有一个存储在

中的数字 1-6(例如垄断)的立方体
vector<vector<short> > cube;

看起来像这样:

0300
5126
0400

我有将它向上旋转的代码:

short tmp=cube[0][1];
cube[0][1]=cube[1][1];
cube[1][1]=cube[2][1];
cube[2][1]=tmp;

我的问题是如何使用 pointers 或类似的东西从该代码创建函数,这样我就不必将该向量复制到函数中,而只需更改现有向量?类似于:

void rotateCubeUp(vector<vector<short> >cube){
    short tmp=cube[0][1];
    cube[0][1]=cube[1][1];
    cube[1][1]=cube[2][1];
    cube[2][1]=tmp;
}

但这没有指针。

通过引用传递向量。参考只是一个别名。请详细阅读参考资料以及何时使用它。这是 C++ 中非常有用的概念。

void rotateCubeUp( vector< vector<short> >& cube){
    short tmp=cube[0][1];
    cube[0][1]=cube[1][1];
    cube[1][1]=cube[2][1];
    cube[2][1]=tmp;
}

建议:在访问矢量元素时使用 "at" 而不是“[]”。 []不提供索引检查。