0

我正在开发一个从文本文件中读取输入并将其输入到二维数组中的项目。如果我想让它适用于所有尺寸,我应该使用矢量吗?如果是这样,我对二维向量的语法感到困惑。

或者如果我应该使用动态数组,你能告诉我吗,因为我以前没有处理过它们。// 这从文本文件中读取输入并将每行的每个单词插入到数组中

ifstream file(argv [1]);
int length = atoi(argv[2]);
int grid [20][20];
int row = 0, column = 0;

string line;
while(getline (file, line)) {
     istringstream stream(line);

     int x;
     column = 0;
     while(stream >> x) {
         grid[row][column] = x;
         column++;
     }

     row++;
}

我的主要困惑是是否使用二维向量或数组,如果是,如何开始

4

1 回答 1

1

从此更改数组的初始声明(和构造):

int grid [20][20];

vector<vector<int>> grid; // Now the size is 0x0

然后将新值添加到内部数组(向量)从grid[row][column] = x;togrid.back().push_back(x);

并且row++grid.push_back(vector<int>());

并不是说您现在根本不需要rowcolumn变量。


转换为std::vector使用的完整代码

ifstream file(argv [1]);
int length = atoi(argv[2]);
vector<vector<int>> grid;
string line;
while(getline (file, line)) {
     istringstream stream(line);
     grid.push_back(vector<int>());

     int x;
     while(stream >> x) {
         grid.back().push_back(x);
     }
}
于 2013-08-14T20:29:38.547 回答