如何使用逐引用传递二维矢量
How to pass a 2d vector using pass-by-reference?
此代码是一个较大项目的一部分。我试图理解如何通过使用引用将二维向量传递给另一个函数。这是我当前的代码,我无法弄清楚错误是什么(使用Xcode)。
代码:
int main()
{
int mines, col, row;
int test;
cout << "nHow many many rows of boxes?" <<endl; //getting row,
//column and mines from user
cin >> row;
cout << "nHow many many columns of boxes?" <<endl;
cin >> col;
cout << "nHow many many mines are in the board?" <<endl;
cin >> mines;
test=(row*col)-1; // test to make sure that the whole gameboard is not filled with mines (multiplies row and columns and subtracts by 1)
while (!(test>= mines)) // if there are more mines than cells or if the whole board is filled with mines, will ask for mines again
{
cout << "nHow many many mines are in the board?" <<endl;
cin >> mines;
}
vector <vector<int> > grid(col, vector<int>(row)); //create 2d vector with col and row as parameters
minesweeper(row, col, mines, vector< vector<int> > grid(col, vector<int>(row))) //sends all data to minesweeper();
return 0;
}
void minesweeper(int row,
int col,
int numOfMines,
vector<vector<int>>& mineField)
{
}
编辑:
对不起,我把问题搞砸了。那是深夜,我忘了复印信头和声明。
这是一个混乱的C++语法。在对minesweeper的调用中,您试图声明并初始化一个名为grid的变量。什么您已经有一个名为grid的变量。只需获得一本C++教科书,然后键入grid
而不是vector< vector<int> > grid(col, vector<int>(row))
,就可以获得
vector <vector<int> > grid(col, vector<int>(row)); //create 2d vector with col and row as parameters
minesweeper(row, col, mines, grid);
在那之后,它将通过引用传递,因为您已经专门声明了参数以使其通过引用传递。你看到mineField参数与其他参数有什么不同吗?这些参数会使它被特别标记为通过引用?
并考虑将描述行数的变量命名为CCD_ 3而不是CCD_。
我看到的问题:
-
在调用函数
minesweeper
之前,您尚未声明该函数。请在main
之前添加声明。void minesweeper(int row, int col, int numOfMines, vector<vector<int>>& mineField);
-
您没有使用正确的语法来调用函数。用途:
minesweeper(row, col, mines, grid) //sends all data to minesweeper();
您已经在该行之前声明了
grid
。之后你可以使用它。不需要在对minesweeper
的调用中添加用于声明grid
的代码。
相关文章:
- 如何使用用户输入变量制作二维数组?
- C2440 使用Shared_ptr创建二维阵列
- 使用 std::sort 对二维 c 数组进行排序
- 使用 C++98 标准填充二维静态向量
- 在创建动态二维数组时,在A[i*c+j]中使用c有什么用,即c代表什么
- 如何使用擦除和迭代器来删除二维向量中的项目
- 如何使用二维语法访问指针
- 如何使用智能指针在二维上声明数组?
- 如何使用一维数组更改二维数组中的值?
- 我们可以在 C++ 编程中使用的二维数组的最大大小是多少?
- C++使用二维数组的程序,该数组要求用户输入两次.它需要将这些输入显示为输出
- 使用递归的二维链表复制构造函数
- 如何使用二维initializer_list进行初始化
- 使用什么数据结构来存储基于游戏对象的二维单元地图?
- 使用二维数组作为一维数组是否正确?可能会导致未定义的行为左右?
- 使用 pthread 打印二维数组
- 如何使用二维数组来计算和存储来自其他数组的值的频率
- 使用已知值,如何找到二维数组的索引?
- 访谈:使用递归的二维矩阵中的最大路径和.路径的恢复
- 如何以"二维方式"使用 boost::variant 定义异构 std::map