我正在尝试使用 push_back 将整数从 ifstream 动态添加到 2d 向量。基本上输入将类似于:
3
20 3
30 4
40 5
3
50 6
60 7
70 8
我想自己读取int(3,3 ..etc),然后创建数字对的二维向量(int本身描述了有多少对)。现在我正在使用 getline() 并将数字存储在 char 中,然后再次将它们转换为 int,但我觉得这可能并不理想。如果有人有任何想法,我将不胜感激。
类似(未经测试):
std::istream_iterator<int> eos;
std::vector<std::vector<int>> matrix;
while(std::getline(str, line))
{
std::istringstream istr(line);
std::istream_iterator<int> iin(istr);
std::vector<int> columns;
std::back_insert_iterator<vector<int>> back_it(columns);
std::copy(iin, eos, back_it);
matrix.push_back(columns);
}