2.Duplicates - Polomorphism Excersice
Здравейте! Опитвам се да реша задача 2 от упражнението за поломорфизъм, но ми изписва exit code -1073741819 (0xC0000005) след като рънна тестовете. Доколкото разбрах от това, някъде достъпвам чужда памет, но не мога да открия точно къде. След като* i е зададено на нълпойнтер си мислех, че ще влезе в първата проверка, но я подминава. Затова въпроса ми е как мога да проверя дали вече съм изтрила дадената компания?
bool sort(Company* c, Company* d){
return c->getName()<d->getName();
}
void removeDuplicates(std::list<Company*>& companies){
companies.sort(sort);
std::string currName;
auto i = companies.begin();
while (i != companies.end()) {
if(*i== nullptr){
i = companies.erase(i);
continue;
}
Company* c = *i;
if(currName==c->getName()){
delete c;
*i= nullptr;
i = companies.erase(i);
continue;
}
else if(currName!=c->getName()){
currName=c->getName(); i++;
}
}
}