1

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

4

1 回答 1

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);
}
于 2012-11-29T14:49:16.170 回答