#include <iostream>
#include <vector>
#include <memory>
using namespace std;
class Klasa
{
int value_;
public:
Klasa(int ai)
: value_(ai)
{
cout << value_ << ' ';
}
~Klasa()
{
cout << '~' << value_ << ' ';
}
int getValue() { return value_; }
};
int main()
{
cout << "--- start ---\n";
Klasa prototype(42);
int len = 10;
shared_ptr<vector<Klasa> > myarray(new vector<Klasa>(len, prototype));
cout << "\n--- array ready ---\n";
for (int i = 0; i < myarray->size(); i++)
cout << (*myarray)[i].getValue() << endl;
cout << "--- stop ---\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8bWVtb3J5PgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApjbGFzcyBLbGFzYQp7CiAgICBpbnQgdmFsdWVfOwpwdWJsaWM6CiAgICBLbGFzYShpbnQgYWkpCiAgICAgICAgOiB2YWx1ZV8oYWkpCiAgICB7CiAgICAgICAgY291dCA8PCB2YWx1ZV8gPDwgJyAnOwogICAgfQogICAgfktsYXNhKCkKICAgIHsKICAgICAgICBjb3V0IDw8ICd+JyA8PCB2YWx1ZV8gPDwgJyAnOwogICAgfQogICAgaW50IGdldFZhbHVlKCkgeyByZXR1cm4gdmFsdWVfOyB9Cn07CiAKIAppbnQgbWFpbigpCnsKICAgIGNvdXQgPDwgIi0tLSBzdGFydCAtLS1cbiI7CiAgICAKICAgIEtsYXNhIHByb3RvdHlwZSg0Mik7CiAgICBpbnQgbGVuID0gIDEwOwogICAgc2hhcmVkX3B0cjx2ZWN0b3I8S2xhc2E+ID4gbXlhcnJheShuZXcgdmVjdG9yPEtsYXNhPihsZW4sIHByb3RvdHlwZSkpOwogICAgY291dCA8PCAiXG4tLS0gYXJyYXkgcmVhZHkgLS0tXG4iOwoKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbXlhcnJheS0+c2l6ZSgpOyBpKyspCiAgICAgICAgY291dCA8PCAoKm15YXJyYXkpW2ldLmdldFZhbHVlKCkgPDwgZW5kbDsKICAgICAgICAKICAgIGNvdXQgPDwgIi0tLSBzdG9wIC0tLVxuIjsKfQ==