#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;
}