#include <iostream>
#include <list>
#include <string>
#include <algorithm>
using namespace std;
typedef list<string> List;
int main() {
List lst{ string("a"), string("b"), string("c") };
auto it = lst.begin();
advance(it, 1);
// _M_next->_M_prev = _M_prev; _M_prev->_M_next = _M_next;
it._M_node->_M_unhook();
delete static_cast<_List_node<string> *>(it._M_node);
for (auto &s : lst)
cout << s << endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bGlzdD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGFsZ29yaXRobT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnR5cGVkZWYgbGlzdDxzdHJpbmc+IExpc3Q7CgppbnQgbWFpbigpIHsKICAgIExpc3QgbHN0eyBzdHJpbmcoImEiKSwgc3RyaW5nKCJiIiksIHN0cmluZygiYyIpIH07CiAgICBhdXRvIGl0ID0gbHN0LmJlZ2luKCk7CiAgICBhZHZhbmNlKGl0LCAxKTsKCiAgICAvLyBfTV9uZXh0LT5fTV9wcmV2ID0gX01fcHJldjsgX01fcHJldi0+X01fbmV4dCA9IF9NX25leHQ7CiAgICBpdC5fTV9ub2RlLT5fTV91bmhvb2soKTsKCiAgICBkZWxldGUgc3RhdGljX2Nhc3Q8X0xpc3Rfbm9kZTxzdHJpbmc+ICo+KGl0Ll9NX25vZGUpOwoKICAgIGZvciAoYXV0byAmcyA6IGxzdCkKICAgICAgICBjb3V0IDw8IHMgPDwgZW5kbDsKfQ==