c++ - 如何在所有尺寸下使这项工作(c++ 初学者文件输入)

标签 c++ file-io

我正在开发一个从文本文件读取输入并将其输入到二维数组中的项目。如果我想让它适用于所有尺寸,我应该使用 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>());

并不是说您不需要 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);
     }
}

关于c++ - 如何在所有尺寸下使这项工作(c++ 初学者文件输入),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18241637/

相关文章:

c++ - STL算法全部还是任意函数?

c++ - 在C++中执行sql脚本

c# - 频繁序列化时使用Xml序列化的正确方法

python:如果超过特定文件大小,则输出到另一个文本文件

java - 将随机数组输出到文件

c++ - 如何正确重载 ostream 的 << 运算符?

c++ - 类和结构的高效 push_back

c++ - Blowfish 仅使用 key 的第一个字符进行加密/解密

r - 观星者产生各种 latex 错误

python - 在 numpy 中导入非方表