输入从fstream到2d向量的整数&lt; vector <int>&gt; C ++ </int>的

时间:2012-11-29 14:41:37

标签: c++ vector ifstream

我正在尝试使用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,但我觉得这可能不太理想。如果有人有任何想法我会很感激。

1 个答案:

答案 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);
}