我使用输入函数从文本文件获取信息并将其输入到类的私有字段中,让我们称之为学生,每次记录填充文本输入文件的第一行我push_back在向量学生中填充类,最后得到一个包含类的向量,该类包含来自输入文件的数据。
所以现在为了能够对这些数据进行操作,我想将它加载到二维字符串向量中,但是我很难实现它。下面是我已经走了多远,我觉得在这一点上我跑了一圈。任何帮助表示赞赏。
传递的参数(大小)是在运行此函数之前检查的文本文件中有多少行。
void student::loadData(int size)
{
vector <vector<string> > tempVec(size);
string first, middle, last, addressNum, addressStreet,
phone, gender, email, emContactFirst, emContactLast,
ph, emPhone, ID, age;
//FIXME//
for (vector<student>::iterator it = students.begin(); it != students.end(); it++){
for (int i = 0; i < size; size++)
{
tempVec[size].push_back(it->getName());
tempVec[size].push_back(it->getId());
tempVec[size].push_back(it->getAge());
tempVec[size].push_back(it->getPhone());
tempVec[size].push_back(it->getAddress());
tempVec[size].push_back(it->getEmail());
tempVec[size].push_back(it->getEmPhone());
tempVec[size].push_back(it->getEmContact());
tempVec[size].push_back(it->gpa);
tempVec[size].push_back(it->honors);
tempVec[size].push_back(it->major);
it++;
}
}
//trying to output 2-dimensional array for debugging purpouses
//(trying to mimic what the output file would look like)
for (int i = 0; i < size; size++)
{
for (vector<string>::iterator z = tempVec[size].begin(); z != tempVec[size].end(); z++){
//**FIX ME**//;
}
}
}
答案 0 :(得分:0)
这里有几个问题。不要在for循环中增加size
,而是要增加i
。
tempVec[size]
超出了向量的范围。您想要tempVec[i]
。
不要在内部for循环内增加it
。