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" 而不是“[]”。 []不提供索引检查。
我基本上有一个存储在
中的数字 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" 而不是“[]”。 []不提供索引检查。