#include <iostream>
#include <vector>
#include <memory>
struct A
{
A(int val) : a(val) {}
int a;
};
int main() {
std::vector<std::shared_ptr<A>> avec;
for(auto i = 0 ; i < 10 ; ++i) {
avec.push_back(std::make_shared<A>(i));
}
for(auto const& e : avec) {
std::cout << e->a << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWVtb3J5PgoKc3RydWN0IEEKewoJQShpbnQgdmFsKSA6IGEodmFsKSB7fQoJCglpbnQgYTsKfTsKCmludCBtYWluKCkgewoJc3RkOjp2ZWN0b3I8c3RkOjpzaGFyZWRfcHRyPEE+PiBhdmVjOwoKCWZvcihhdXRvIGkgPSAwIDsgaSA8IDEwIDsgKytpKSB7CgkJYXZlYy5wdXNoX2JhY2soc3RkOjptYWtlX3NoYXJlZDxBPihpKSk7Cgl9CgoJZm9yKGF1dG8gY29uc3QmIGUgOiBhdmVjKSB7CgkJc3RkOjpjb3V0IDw8IGUtPmEgPDwgc3RkOjplbmRsOwoJfQoKCXJldHVybiAwOwp9