#include <iostream>
#include <list>
using namespace std;
int main() {
list <int *> ptrs;
for (int i = 0; i < 10; ++i) { // wypelniamy liste wskaznikami
ptrs.emplace_back (new int(i));
}
for (int *v : ptrs) { // wypisujemy zawartosc list
cout << *v << ' ';
}
for (int *v : ptrs) { // usuwamy to, co jest pod tymi wskaznikami i przypisujemy nullptr do KOPII
delete v;
v = nullptr;
}
ptrs.remove_if ([] (int *v) -> bool { return (v == nullptr); }); // usuwamy z listy wszystko co jest rowne nullptr
cout << '\n' << ptrs.size(); // sprawdzamy ilosc elementow w liscie
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bGlzdD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewogICAgbGlzdCA8aW50ICo+IHB0cnM7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDEwOyArK2kpIHsgLy8gd3lwZWxuaWFteSBsaXN0ZSB3c2them5pa2FtaQogICAgICAgIHB0cnMuZW1wbGFjZV9iYWNrIChuZXcgaW50KGkpKTsKICAgIH0KCiAgICBmb3IgKGludCAqdiA6IHB0cnMpIHsgLy8gd3lwaXN1amVteSB6YXdhcnRvc2MgbGlzdAogICAgICAgIGNvdXQgPDwgKnYgPDwgJyAnOwogICAgfQoKICAgIGZvciAoaW50ICp2IDogcHRycykgeyAvLyB1c3V3YW15IHRvLCBjbyBqZXN0IHBvZCB0eW1pIHdza2F6bmlrYW1pIGkgcHJ6eXBpc3VqZW15IG51bGxwdHIgZG8gS09QSUkKICAgICAgICBkZWxldGUgdjsKICAgICAgICB2ID0gbnVsbHB0cjsKICAgIH0KCiAgICBwdHJzLnJlbW92ZV9pZiAoW10gKGludCAqdikgLT4gYm9vbCB7IHJldHVybiAodiA9PSBudWxscHRyKTsgfSk7IC8vIHVzdXdhbXkgeiBsaXN0eSB3c3p5c3RrbyBjbyBqZXN0IHJvd25lIG51bGxwdHIKCiAgICBjb3V0IDw8ICdcbicgPDwgcHRycy5zaXplKCk7IC8vIHNwcmF3ZHphbXkgaWxvc2MgZWxlbWVudG93IHcgbGlzY2llCgogICAgcmV0dXJuIDA7Cn0K