Я работаю над проектом для школы, но столкнулся с ошибкой.
У меня есть класс под названием схема, которая состоит из другого класса под названием "Token"
, Схема выглядит так:
class scheme
{
public:
Token * id;
vector <string> Paren;
vector <Token> idList;
scheme();
void addScheme(vector <Token> toAdd);
};
Все идет нормально. Но теперь я нахожусь в функции «addScheme», которая выглядит так:
void scheme::addScheme(vector <Token> toAdd)
{
//Check if scheme is valid
if (isSchemeValid(toAdd) == false)
{
cout << "ERROR!" << endl;
return;
}
vector <Token> ids;
for (int i = 2; i < toAdd.size()-1; i++)
{
ids.push_back(toAdd.at(i));
}*id = toAdd.at(0);
Paren.push_back("(");
Paren.push_back(")");
idList = ids;
}
У меня нет проблем до самой последней части, которая говорит
idList = ids;
почему-то эта строка вызывает ошибку:
«Исключение первого шанса в 0x663FCCD2 (msvcp110d.dll) в CS Proj 2.exe: 0xC0000005: расположение записи нарушения доступа 0x009DD1B8».
Я попытался вручную зациклить его в idList следующим образом:
for (int i=0; i< ids.size(); i++)
{
idList.push_back(ids.at(i));
}
но это бросает эту ошибку:
«Исключение первого шанса в 0x00348255 в CS Proj 2.exe: 0xC0000005: расположение чтения нарушения доступа 0x8B0C4295».
Итак … У меня нет идей. Почему я не могу скопировать вектор id в вектор idList?
Спасибо за вашу помощь!
Задача ещё не решена.
Других решений пока нет …