#include <vector>
#include <iostream>

using namespace std;

int main() {
	vector<int> a(10); // 10 элементов, изначально туда записаны нули
	cout << a.size() << endl; // выведет 10
	
	// Пользоваться им как обычным массивом
	a[3] = 2;
	int x = a[3];

	a.resize(20); // расширить до 20 элементов, в новые элементы записываются нули, старые не портятся
	a.resize(5); // оставить первые 5 элементов
	a.clear(); // равносильно resize(0)

	a = {3, 4, 5}; // теперь в a ровно 3 элемента: 3, 4, 5
	a.push_back(7); // теперь a == {3, 4, 5, 7}

	int n = 1e6;
	// resize умный, следующий код отработает за O(n)
	for (int i = 0; i < n; i++) // миллион раз
		a.resize(i);
	// push_back тоже умный, следующий код отработает за O(n)
	vector<int> b;
	for (int i = 0; i < n; i++) // миллион раз
		b.push_back(i);

	for (int x : a) // перебрать все элементы ыектора
		cout << x << endl;
}