gpt4 book ai didi

c++ - vector 中的未知变量列大小

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:19:24 24 4
gpt4 key购买 nike

我在这个网站上的第一个问题。加上对 C++ 相当陌生。

我一直在寻找一种从文本文件中填充 vector 的方法。但是,每行的列大小是不同的并且事先是未知的。

让我给你看一个例子,这是我想在 vector 中获取的文本文件:

3

1 1

1 2

0

(表的含义:项目 x 中有 3 个事件,第一个事件有 1 个直接前驱(事件 1),第二个事件也有一个直接前驱(事件 2),最后一个事件没有前驱。)

我想要这个文本文件在一个 vector 中,但是我有几个类似的文本文件,我需要读入的列数不同。

因为我知道每个项目中的事件量,所以我能够定义行数。但是,我不知道列数...

我现在尝试的是使用 inFile.good() 来查看我是否已到达文本文件的末尾。但是,我需要一些东西来查看我是否在该行的末尾。我已有的代码是:

    //READING NUMBER OF ACTIVITIES

inFile >> nbr_activities;
cout << nbr_activities << endl;

//READING PRECEDENCE RELATIONSHIP
for (int i = 0; i < nbr_activities; i++)
{

vector<int> temp_vec;
while (inFile.good())
{
int skills;
inFile >> skills;
temp_vec.push_back(skills);
}
precedence_per_activity.push_back(temp_vec);
}

//PRINTING THE VECTOR
for (int i = 0; i < nbr_activities; i++)
{
int j = 0;
while (inFile.good())
{
j++;
cout << precedence_per_activity[i][j] << ' ';
}
cout << endl;
}

然而,这并没有给出好的结果。

有人可以帮我吗?我真的看不到任何解决方案..

最佳答案

看起来 precedence_per_activity 被定义为:

vector<vector<int>> precedence_per_activity;

所以要打印你想要这样的东西:

for (auto v : precedence_per_activity) {
for (auto i : v) {
cout << i << ' ';
}
cout << endl;
}

关于c++ - vector 中的未知变量列大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28696202/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com