У мене код такий:
for (std::list<item*>::iterator i=items.begin();i!=items.end();i++)
{
bool isActive = (*i)->update();
//if (!isActive)
// items.remove(*i);
//else
other_code_involving(*i);
}
items.remove_if(CheckItemNotActive);
Я хотів би видалити неактивні елементи відразу після їх оновлення, щоб уникнути повторного перегляду списку. Але якщо додати коментовані рядки, я отримаю помилку, коли потрапляю до i++
: "Список ітераторів не збільшується". Я спробував кілька заступників, які не збільшувались у заяві для заяви, але я не міг нічого працювати.
Який найкращий спосіб видалити елементи під час перегляду списку std ::?