Я не понимаю, в чем проблема с этой функцией, я делал что-то очень похожее на это в прошлом, и он работал нормально, но теперь, когда я пытаюсь запустить эту функцию, я получаю ошибкаНевозможно разыменовать итераторы векторов
"Unable to dereference vector iterator"
Он поставляется на линии curr->setName(new_name);
, которая имеет смысл, так как это, где его быть разыменовываются. Также просто чтобы быть понятным, все функции и классы, используемые в этом методе, работают отлично сами по себе, я просто не вставляю их ради пространства.
void System::modify(PC a){
char x;
curr = find(begin(comps), end(comps), a);
cout << "What would you like to modify:" << endl;
cout << "a - Name" << endl;
cout << "b - IP" << endl;
cout << "c - Password" << endl;
cin >> x;
if(x == 'a'){
string new_name;
cout << "What would you like to rename the computer to: ";
cin >> new_name;
curr->setName(new_name);
}
if(x == 'b'){
string new_IP;
cout << "What would you like the new IP address to be: ";
cin >> new_IP;
curr->setIP(new_IP);
}
if(x == 'c'){
curr->setNewPass();
}
else{
cout << "Choice is not valid" << endl;
return;
}
}
Вы проверили, чтобы убедиться, что 'curr! = End (comps)' и что comps не пуст? – NathanOliver
@NathanOliver Очевидно нет. –
Вы должны проверить 'curr! = End (comps)' и решить, что делать с не существующим ПК –