#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> v;
for(int i = 0;i<100;++i){
v.push_back(i+1);
}
auto it = v.begin();
cout << *it << endl;//1, звісно
auto old_capacity = v.capacity();
cout << "size = " <<v.size()<<" capacity = "<<v.capacity()<<endl;
int i = 101;
while( old_capacity == v.capacity() ) {
v.push_back(i++);
}
cout << "size = " <<v.size()<<" capacity = "<<v.capacity()<<endl;
cout << *it << endl;//тут має бути 1, бо it вказує у звільнену область пам'яті,
//де ще лишаються старі дані, але це не гарантовано
v[0]=1000;
cout << *it << endl; //тут знову має бути 1
cout << *v.begin() << endl; //тут має бути 1000
*it=300; //дуже погано так робити - ми пишемо у звільнену пам'ять
cout << *it << endl; //може, вийде, може, ні
vector<int> u(10,999);
cout << *it << endl;//якщо пощастить, буде 999
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IG1haW4oKSB7CgkKCXZlY3RvcjxpbnQ+IHY7CgkKCWZvcihpbnQgaSA9IDA7aTwxMDA7KytpKXsKCSAgdi5wdXNoX2JhY2soaSsxKTsKCX0KCQoJYXV0byBpdCA9IHYuYmVnaW4oKTsKCQoJY291dCA8PCAqaXQgPDwgZW5kbDsvLzEsINC30LLRltGB0L3QvgoJCglhdXRvIG9sZF9jYXBhY2l0eSA9IHYuY2FwYWNpdHkoKTsKCWNvdXQgPDwgInNpemUgPSAiIDw8di5zaXplKCk8PCIgY2FwYWNpdHkgPSAiPDx2LmNhcGFjaXR5KCk8PGVuZGw7CglpbnQgaSA9IDEwMTsKCXdoaWxlKCBvbGRfY2FwYWNpdHkgPT0gdi5jYXBhY2l0eSgpICkgewoJICB2LnB1c2hfYmFjayhpKyspOwoJfQoJCgljb3V0IDw8ICJzaXplID0gIiA8PHYuc2l6ZSgpPDwiIGNhcGFjaXR5ID0gIjw8di5jYXBhY2l0eSgpPDxlbmRsOwoJCgljb3V0IDw8ICppdCA8PCBlbmRsOy8v0YLRg9GCINC80LDRlCDQsdGD0YLQuCAxLCDQsdC+IGl0INCy0LrQsNC30YPRlCDRgyDQt9Cy0ZbQu9GM0L3QtdC90YMg0L7QsdC70LDRgdGC0Ywg0L/QsNC8J9GP0YLRliwgCgkgICAgICAgICAgICAgICAgICAgIC8v0LTQtSDRidC1INC70LjRiNCw0Y7RgtGM0YHRjyDRgdGC0LDRgNGWINC00LDQvdGWLCDQsNC70LUg0YbQtSDQvdC1INCz0LDRgNCw0L3RgtC+0LLQsNC90L4KCXZbMF09MTAwMDsKCWNvdXQgPDwgKml0IDw8IGVuZGw7ICAgICAgICAvL9GC0YPRgiDQt9C90L7QstGDINC80LDRlCDQsdGD0YLQuCAxCgljb3V0IDw8ICp2LmJlZ2luKCkgPDwgZW5kbDsgLy/RgtGD0YIg0LzQsNGUINCx0YPRgtC4IDEwMDAKCSppdD0zMDA7IC8v0LTRg9C20LUg0L/QvtCz0LDQvdC+INGC0LDQuiDRgNC+0LHQuNGC0LggLSDQvNC4INC/0LjRiNC10LzQviDRgyDQt9Cy0ZbQu9GM0L3QtdC90YMg0L/QsNC8J9GP0YLRjAoJY291dCA8PCAqaXQgPDwgZW5kbDsgLy/QvNC+0LbQtSwg0LLQuNC50LTQtSwg0LzQvtC20LUsINC90ZYKCXZlY3RvcjxpbnQ+IHUoMTAsOTk5KTsKCWNvdXQgPDwgKml0IDw8IGVuZGw7Ly/Rj9C60YnQviDQv9C+0YnQsNGB0YLQuNGC0YwsINCx0YPQtNC1IDk5OQoKCXJldHVybiAwOwp9