Witam, gdy usuwam element z listy w taki sposób:
std::list<std::shared_ptr<element> > elements;
std::shared_ptr<element> nelement(new element);
elements.push_back(nelement);
//...
for(std::list<std::shared_ptr<element> >::iterator iter = elements.begin(); itera != elements.end(); ++iter)
{
//...
elements.erase(iter);
//tutaj break;
}
otrzymuje sigsegv, w jaki sposób mogę usunąć element z listy?
Ta pętla for jest puszczona w innej pętli, gdy po usunięciu elementu przerwę pętle(break), to wszystko ładnie działa.
Wątek utworzył się 3 razy, a wyświetlało się "Upłynął czas... proszę spróbować ponownie".