/*
created by Rian Adam Rajagede
31 July 2020
*/

#include <iostream>
#include <vector>
using namespace std;

int main() {
	cout << "=====================Section A======================" << endl;
	cout << "====================================================" << endl;
	
	// vector of int
	vector<int> v;
	cout << "Initial vector size:" << v.size() << endl; // vector is empty
	
	v.push_back(3);
	v.push_back(1);
	v.push_back(7);
	cout << "New vector size:" << v.size() << endl; // vector size is 3 [3, 1, 7]
	cout << "v[0]:" << v[0] << endl;
	cout << "v[1]:" << v[1] << endl;
	cout << "v[2]:" << v[2] << endl;
	cout << "front:" << v.front() << endl;
	cout << "back:" << v.back() << endl;
	
	cout << "=====================Section B======================" << endl;
	cout << "====================================================" << endl;
	
	vector<int> v2;
	cout << "Initial vector size:" << v2.size() << endl; // vector is empty
	v2.assign(100,2);
	cout << "New vector size:" << v2.size() << endl; // vector size is 100 
	cout << "v[0]:" << v2[0] << endl;
	cout << "v[1]:" << v2[1] << endl;
	cout << "v[2]:" << v2[2] << endl;
	cout << "front:" << v2.front() << endl;
	cout << "back:" << v2.back() << endl;
	
	cout << "=====================Section C======================" << endl;
	cout << "====================================================" << endl;
	
	for(int i=0;i<v.size();i++) cout << v[i] << " "; cout << endl; // print elements of v
	
	v.insert(v.begin(), 2); // insert in the first position
	for(int i=0;i<v.size();i++) cout << v[i] << " "; cout << endl; // print elements of v
	
	v.insert(v.begin()+1, 8); // insert in the first position+1
	for(int i=0;i<v.size();i++) cout << v[i] << " "; cout << endl; // print elements of v
	
	v.insert(v.end(), 0); // insert in the last position
	for(int i=0;i<v.size();i++) cout << v[i] << " "; cout << endl; // print elements of v
	
	v.insert(v.end()-1, 6); // insert in the last position-1
	for(int i=0;i<v.size();i++) cout << v[i] << " "; cout << endl; // print elements of v
	
	cout << "=====================Section D======================" << endl;
	cout << "====================================================" << endl;
	
	for(int i=0;i<v.size();i++) cout << v[i] << " "; cout << endl; // print elements of v
	
	v.erase(v.begin()+2); // delete 1 elements in position 2
	for(int i=0;i<v.size();i++) cout << v[i] << " "; cout << endl; // print elements of v
	
	v.erase(v.begin()+1, v.begin()+4); // delete 3 elementa, position 1, 2, and 3
	for(int i=0;i<v.size();i++) cout << v[i] << " "; cout << endl; // print elements of v
	
	cout << "=====================Section E======================" << endl;
	cout << "====================================================" << endl;
	
	v.clear();
	cout << "Size after cleared:" << v.size() << endl;
	
	return 0;
}