试图将包含类的向量中的信息加载到二维字符串向量中

时间:2015-11-07 04:15:56

标签: c++ multidimensional-array vector

我使用输入函数从文本文件获取信息并将其输入到类的私有字段中,让我们称之为学生,每次记录填充文本输入文件的第一行我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**//;
            }
    }

}

1 个答案:

答案 0 :(得分:0)

这里有几个问题。不要在for循环中增加size,而是要增加i

tempVec[size]超出了向量的范围。您想要tempVec[i]

不要在内部for循环内增加it