【问题标题】:inserting txt file values into multidimensional vector将txt文件值插入多维向量
【发布时间】:2015-04-03 23:45:55
【问题描述】:

我需要一些帮助来将一系列值插入向量中。 例如,我的 .txt 文件看起来像这样;

0
0
35
0
2
0
35
0
0
0
2
0
etc.

我需要将这些值插入到二维向量中。 IE。如果表格是 10x5,它看起来像;

0 0 35 0  2
0 2 0  35 0
0 0 2  0  etc.

我想用这样的东西:

vector<vector<int>> Pix;

vector<int> tmp_col;
int i;
int j;

for (i=0; i<largeur; i++) {
    for (j=0; j<hauteur; j++) {

    }
}

但我不知道如何或是否使用 push.back 函数或 get.line(我对编程很陌生)

感谢您的帮助:)))

【问题讨论】:

标签: c++ multidimensional-array vector


【解决方案1】:

如果您知道文本文件中的尺寸和值始终由空格分隔,其中包括换行符,您可以执行以下操作:

vector<vector<int>> Pix(height, vector<int>(width));

for (auto& y : Pix)
{
    for (auto& x : y)
    {
        if (! (mystream >> x))
        {
            // failure to parse
        }
    }
}

请注意,向量的索引应为Pix[y][x]

【讨论】:

  • 谢谢。这是否允许向量改变大小,因为将有数百个值进入它。我已经知道向量的最终大小了。
  • @JamesRushbrooke 我不确定你的意思。这里向量在开始时设置为最终大小。我假设最终大小是已知的?
  • 是的,最终大小是已知的,我只是不明白每个值如何在正确的位置进入向量,考虑到它们必须位于正确的高度和宽度位置。如果我的问题没有意义,我很抱歉,我对这一切都很陌生@NeilKirk
  • 你了解 for 循环吗?第一个将每个行向量放入y,然后第二个将行向量的每个元素放入x。它将查询向量的当前大小,在本例中为width,以了解x 中每行应处理多少个元素。
  • ok 很好......和 ​​if 条件......我不太明白它的作用以及我应该在 //failure to parse 部分中输入的内容。再次感谢您
猜你喜欢
  • 2015-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多