矢量中未知的可变列大小
Unknown variable column size in vector
本文关键字:未知 更新时间:2023-10-16
我在这个网站上的第一个问题。加上C++的新功能。
我一直在寻找一种从文本文件中填充矢量的方法。然而,每一行的列大小是不同的,并且事先未知。
让我给你看一个例子,这是我想在矢量中获得的文本文件:
3
1 1
1 2
0
(表的含义:项目x中有3个活动,第一个活动有一个直接前身(活动1),第二个活动也有一个间接前身(活动2),最后一个活动没有前身。)
我想要这个文本文件在一个向量中,但是我有几个类似的文本文件,有不同数量的列需要读取
由于我知道每个项目中的活动数量,所以我能够定义行数。然而,我不知道列的数量。。。
我现在尝试的是使用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;
}
问题就在这里:
//READING PRECEDENCE RELATIONSHIP
for (int i = 0; i < nbr_activities; i++)
{
vector<int> temp_vec;
while (inFile.good()) // READ FULL FILE
{
int skills;
inFile >> skills;
temp_vec.push_back(skills);
}
precedence_per_activity.push_back(temp_vec);
}
对于每一行,您不应该读取完整的文件。你需要取第一个号码,再做一个:
//READING PRECEDENCE RELATIONSHIP
for (int i = 0; i < nbr_activities; i++)
{
int counter;
vector<int> temp_vec;
inFile>>counter;
for (int j = 0; j < counter; j++)
{
int skills;
inFile >> skills;
temp_vec.push_back(skills);
}
precedence_per_activity.push_back(temp_vec);
}
相关文章:
- 继承期间显示未知行为的子类
- 输入中的字符串数未知(以字母表示)
- 具有未知值时的时间复杂性
- 链表中写入访问冲突的未知原因
- 正在生成未知类实例
- Bjarne Stroustrup Book - std_lib_facilities.h - 不起作用(未知类型名称)
- 读取文件时运行时的未知行为
- 代码在我的计算机上运行良好,但是在将其提交给coursera时遇到未知的信号11问题
- 初始化多个未知基类
- 使用 make 编译 MPI,几个命名空间错误,例如"错误:未知类型名称'使用'?
- 如何存储未知次数迭代的输入?
- QtQuick - qml:28:错误:未知方法返回类型:自定义类型
- 编译 Boost 时在 OS X 上的"ld:未知选项:-soname"
- 未知的 CMake 命令"create_single_source_cgal_program"
- 如何在C++中循环访问未知对象方法?
- Coursera :自动评分器的未知信号 11
- 即使直接从官方示例中复制,也找不到未知类型名称QML_ELEMENT和 QML 模块
- 未知的 GCC 链接器错误,但已成功构建
- 如何从未知视图中声明范围::v3::View 变量
- std::string.size() 未知行为