如何从cin读入矢量

iCo*_*ime 1 c++ vector

我正在尝试建立一个像扫描程序从stdin中读取程序的扫雷程序.输入在表单中

4 4
..*.
*...
....
**..
Run Code Online (Sandbox Code Playgroud)

我已经定义vector< vector<char> > mine_field并将其调整为该字段的尺寸.我设想在这样的时间读取输入中的一行(当然这只是第一行)

 cin >> mine_field[0];
Run Code Online (Sandbox Code Playgroud)

但是,这不起作用.最好的方法是什么?

编辑:我也考虑过循环并将值存储在每个索引中,但是这不会尝试将整个string放在每个索引中只有空间char吗?

Gui*_*rme 6

首先,您需要将矢量调整到限制(rowSize,colSize).

vector<vector<char> > mine_field (rowSize, vector<char> (colSize));
Run Code Online (Sandbox Code Playgroud)

类似地,您可以使用相同的声明初始化所有位置.

vector<vector<char> > mine_field (rowSize, vector<char> (colSize, 'a'));
Run Code Online (Sandbox Code Playgroud)

mine_field向量中的所有位置都将使用char进行初始化a.

要阅读cin,只需正常阅读:

for (int i = 0; i < rowSize; i++){
    for (int j = 0; j < colSize; j++){
        cin >> mine_field[i][j];
    }
}`
Run Code Online (Sandbox Code Playgroud)