#include <iostream>
#include <vector>

using namespace std;

int main() {
	// Вектор - массив, который может расти
	/* Создание вектора
	Синтаксис: vector<тип> имя;
	Методы:
	.push_back(item) - добавить в конец (append)
	.pop_back() - удалить последний элемент
	.insert(i, item) - вставить элемент на индекс i
	.erase(i) - удалить элемент с индексом i
	.size() - возвращает размер, занимаемый элементами
	.capacity() - возвращает размер выделенного места (вместимость)
	.reserve(amount) - запросить изменение вместимости
	*/

	cout << "Векторы:" << endl;
	vector<int> myVector;
	/*
	Если не зарезервировать место заранее, то при каждом выходе за пределы размеров вектора
	весь массив будет копироваться в вдвое большее место в памяти
	*/
	// myVector.reserve(19);

	for (int i=0; i<19; i++) {
		myVector.push_back(i*i);
		cout << myVector[i] << endl;
		// cout << "capacity: " << myVector.capacity() << endl;
	}

	cout << myVector.size() << endl;

	return 0;
}