#include <iostream>
#include <string>
#include <list>
int main(void) {
std::list<std::string> l;
l.push_back("overflow");
l.push_back("test");
/* Access it through iterators */
/* iterators are kinda like pointers, but each ++ moves to the next item */
std::list<std::string>::iterator it;
for(it = l.begin(); it != l.end(); it++) {
std::cout << "item: " << *it << std::endl;
}
l.push_front("stack");
std::cout << *l.begin() << std::endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8bGlzdD4KCmludCBtYWluKHZvaWQpIHsKICAgIHN0ZDo6bGlzdDxzdGQ6OnN0cmluZz4gbDsKICAgIGwucHVzaF9iYWNrKCJvdmVyZmxvdyIpOwogICAgbC5wdXNoX2JhY2soInRlc3QiKTsKCiAgICAvKiBBY2Nlc3MgaXQgdGhyb3VnaCBpdGVyYXRvcnMgKi8KICAgIC8qIGl0ZXJhdG9ycyBhcmUga2luZGEgbGlrZSBwb2ludGVycywgYnV0IGVhY2ggKysgbW92ZXMgdG8gdGhlIG5leHQgaXRlbSAqLwogICAgc3RkOjpsaXN0PHN0ZDo6c3RyaW5nPjo6aXRlcmF0b3IgaXQ7CiAgICBmb3IoaXQgPSBsLmJlZ2luKCk7IGl0ICE9IGwuZW5kKCk7IGl0KyspIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgIml0ZW06ICIgPDwgKml0IDw8IHN0ZDo6ZW5kbDsKICAgIH0KCiAgICBsLnB1c2hfZnJvbnQoInN0YWNrIik7CiAgICBzdGQ6OmNvdXQgPDwgKmwuYmVnaW4oKSA8PCBzdGQ6OmVuZGw7Cn0=