我基本上有一个存储有数字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;


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

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”代替“ []”。 []不提供索引检查。

关于c++ - C++子程序vector <vector <short>>指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28087584/

10-11 18:02