我正在开发一个从文本文件读取输入并将其输入到二维数组中的项目。如果我想让它适用于所有尺寸,我应该使用 vector 吗?如果是这样,我对二维 vector 的语法感到困惑。
或者如果我应该使用动态数组,你能给我建议吗,因为我以前没有研究过它们。 //这从文本文件中读取输入并将每一行的每个单词插入到一个数组中
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++;
}
我主要的困惑是是使用二维 vector 还是数组,如果是,如何开始
最佳答案
从这里更改数组的初始声明(和构造):
int grid [20][20];
到
vector<vector<int>> grid; // Now the size is 0x0
然后将新值添加到 grid[row][column] = x;
的内部数组( vector )中至 grid.back().push_back(x);
和
和row++
至 grid.push_back(vector<int>());
并不是说您不需要 row
和 column
现在完全没有变量。
完整代码转换为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);
}
}
关于c++ - 如何在所有尺寸下使这项工作(c++ 初学者文件输入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18241637/