fork download
#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;
}
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
1
size = 100 capacity = 128
size = 129 capacity = 256
1
1
1000
300
300