【发布时间】:2015-12-14 17:40:21
【问题描述】:
我有一个名为 Task 的类
//Attributes
int earliestStartingTime, earliestEndTime, latestStartingTime, latestEndTime, duration, differ;
char TaskPosition;
list<Task*> predecessors;
list<Task*> successors;
//Constructor
Task::Task(char TaskPosition2, int duration, list<Task*> predecessors)
{
this-> TaskPosition = TaskPosition2;
this -> duration = duration;
for(list<Task*>::iterator it = this-> predecessors(); it != this->predecessors.end(); it++)
{
this-> predecessors.push_back(*it);
}
}
我正在尝试逐行读取文件并将数据存储到列表任务中。
在文件中,数据是这样存储的
A(3)
B(4),A
C(2),A
E(5),A
G(3),A
J(8),B,H
H(7),C,E,G
I(6),G
F(5),H
M(4),我 ...
我希望能够将它们添加到任务列表中,如下所示
Task(char TaskPosition, int duration, 列出前辈) 比如:
A是任务位置
3 是持续时间
没有前任
B是任务位置
4 是持续时间
A是前任
... J是任务位置
8 是持续时间
B,H是J的前身
等等。
稍后我将对该列表进行一些计算,例如,从 A 到 Z 的最短路径是什么......
但我仍然坚持阅读文件并将它们添加到列表中。
这是我目前所拥有的。
int _tmain(int argc, _TCHAR* argv[])
{
string line;
list< Task>* allTask = new list<Task>;
const string file = "Test01.txt"; // text file
ifstream file;
if(file.is_open())
{
while(getline(file, line, ','))
{
allTask.push_back(line);
}
}
}
这一行
allTask.push_back(line);
正在给我一条错误消息,
the lest side of .push_back must have class/struct/union
所以我不知道该怎么办了。任何人都可以帮我弄清楚如何读取文件,请将数据添加到列表中。
谢谢
【问题讨论】:
-
list< Task>* allTask = new list<Task>;跟着我慢慢重复,带着感觉:C++ 不是 Java(或 C#)。这里不需要new或指针(这就是让你感到困惑的地方:使用指针,然后期望它在语法上像对象一样)。