C ++ Как расположить вектор распорок, ошибка EXC_BAD_ACCESS - PullRequest
0 голосов
/ 19 сентября 2018

Может кто-нибудь помочь мне с этой ошибкой.Я не спал всю ночь, пытаясь заставить этот код работать, не могу понять это.

Я пытаюсь вычеркнуть одно значение из моей векторной распорки, но я продолжаю получать эту ошибку EXC_BAD_ACCESS.Я использовал перерывы, чтобы увидеть, являются ли переменные такими, какими они должны быть, и они есть, но ошибка продолжается.Можете ли вы помочь мне?

        vector<department> depart;
        depart.push_back(department());

        while(lineNum <= lineCount)  
        {
            lineNum = lineNum;
            depart[lineNum].dept = sTemp1;
            depart[lineNum].building = sTemp2;
            depart[lineNum].budget = sTempToInt;
            depart.push_back(department());  
            lineNum++;
        }
        vector<department> deptVec;
        cout << "Vector output: " << deptVec[0].budget;
    }
        else
        {
            sTemp1.erase (remove (sTemp1.begin(), sTemp1.end(), ' '), sTemp1.end()); //clean up
            //sTemp2.erase (remove (sTemp2.begin(), sTemp2.end(), ' '), sTemp2.end()); //clean up
            sTemp2.erase(find_if(sTemp2.rbegin(), sTemp2.rend(), bind1st(std::not_equal_to<char>(), ' ')).base(), sTemp2.end());
            sTemp3.erase (remove (sTemp3.begin(), sTemp3.end(), ' '), sTemp3.end()); //clean up
            sTempToInt = stoi(sTemp1);//file is instructor

            vector<intructor> intruct;
            intruct.push_back(intructor()); //Push back new subject created with default constructor.

            for(int lineNum = 0; lineNum>= lineCount; lineNum++) //Will create a set of vectors for each line.
            {
                intruct[lineNum].id = sTempToInt;
                intruct[lineNum].name = sTemp2;
                intruct[lineNum].dept = sTemp3;

                intruct.push_back(intructor());  //Adds a new element:
            }

            cout << sTempToInt << "\n" << sTemp2 << "\n" << sTemp3 << "\n";
        }

Часть, которая дает мне ошибку:

vector<department> deptVec;
    cout << "Vector output: " << deptVec[0].budget;

Предполагается, что вывести int, но пропускает ошибку.Я проверил, что Department.budget содержит Int.Не уверен, что попробовать.

Ответы [ 2 ]

0 голосов
/ 19 сентября 2018

Я исправил проблему.По какой-то причине я пытался создать новый вектор после цикла while вместо того, чтобы использовать тот, который используется в цикле while.

Это до: vector<department> deptVec; cout << "Vector output: " << deptVec[0].budget;

После (чтотак и должно быть): cout << "Vector output: " << depart[0].dept;

0 голосов
/ 19 сентября 2018

Вектор deptVec пуст, и вы пытаетесь получить доступ к элементу из него.Попробуйте отправить значения в deptVec перед cout.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...