我想将.txt文件的内容存储为不同对象的属性,然后可以将其存储在向量中。有没有简单的方法可以做到这一点。
我的txt文件如下:
a0 0 4 0 10
a1 0 3 0 20
a2 0 2 0 30
我试图这样做,但出现错误。
class process {
public:
std::string name;
int arrivalTime;
int priority;
int age;
int ticketsReq;
int time;
process(std::string name, int arrivalTime, int priority, int age, int ticketsReq) {
this->name = name;
this->arrivalTime = arrivalTime;
this->priority = priority;
this->age = age;
this->ticketsReq = ticketsReq;
this->time = 0;
}
};
int main() {
std::ifstream theFile("input.txt");
int i = 0;
std::vector<process> a;
std::string nameT;
int arrivalTimeT;
int priorityT;
int ageT;
int ticketsReqT;
int timeT;
while(theFile>>nameT>>arrivalTimeT>>priorityT>>ageT>>ticketsReqT){
a[i] = process (nameT,arrivalTimeT,priorityT,ageT,ticketsReqT);
i++;
}
}
答案 0 :(得分:0)
好的,我至少看到了一个问题。
首先,vector假设您调用push_back将元素添加到vector中。您可以执行vector [index]来访问元素。但是您将会遇到范围问题。
第二,这行没有意义:
a[i] = process (nameT,arrivalTimeT,priorityT,ageT,ticketsReqT);
此时,您没有流程的“ this”。您将需要执行以下操作:
process myObj(nameT,arrivalTimeT,priorityT,ageT,ticketsReqT);
a.push_back(myObj);
从侧面来看,我个人从来没有将对象存储在std :: vector中。我存储指向对象的指针。我不知道是否有人可以对此发表评论,但请考虑会发生什么。您可能需要编写一个更简单的示例进行测试。