我正在尝试使用push_back动态地将ifstream中的整数添加到2d向量中。基本上输入将类似于:
3
20 3
30 4
40 5
3
50 6
60 7
70 8
我想自己读取int(3,3 ..etc),然后创建数字对的2d向量(int自己描述将有多少对)。现在我使用getline()并将数字存储在char中,然后再将它们转换为int,但我觉得这可能不太理想。如果有人有任何想法我会很感激。
答案 0 :(得分:0)
像(未经测试)的东西:
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);
}