
// Энэ удаад vector-ын талаар үзэх болно
#include <cstdio>
#include <vector> // vector ашиглахын тулд энэ санг заавал бичнэ
using namespace std; // энэ нь мөн байх ёстой.

int main() {
	/*
		vevtor гэж юу вэ? энэ нь энгийн массивыг илүү хялбарчилсан зүйл юм.
		жишээ нь vector-т элемэнт устгах нэмэх гэх үйлдлүүдийг хялбараар шийдэж 
		өгсөн байдаг ба ашиглахад хялбар мөн бичиглэл бага орох юм. Ер нь бол
		массив.
	*/
	vector<int> v; 	// v гэсэн нэртэй вектор нь int буюу бүхэл төрлийн хувьсагч
					// авч чадна гэсэн утгатай. Ингэж зарласан тохиолдолд v гэсэн
					// векторт маань ямар ч элемэнт байхгүй ба хоосон байгаа.

	// Элемэнт нэмэх.
	v.push_back( 247 );	// push_back( утга ) байх ба энэ нь векторт маань элемэнт нэмж байгаа гэсэн үг
						// хамгийн ард талд нь нэмж байгаа.

	// хэвлэх 
	printf("%d\n",v[0]);	// одоо вектор маань хоосон биш болсон тул бид эхний элемэнтийг хэвлэхийг хүсвэл
							// ингэж хэвлэнэ. Мөн адил 0-ээс эхэлж дугаарлана. хэрвээ 3-р элемэнтийг хэвлэххийг
							// хүвсэл v[3] гэхэд л хангаллтай ч бидэнд 3-р элемэнт гэж байхгүй юм. Векторын нэг ашигтай
							// тал нь илүүц хэрэггүй санах ой ашиглахгүй юм

	v.push_back( 1 ); // хамгийн ард 1-ыг нэмж байна.
	v.push_back( 2 ); // хамгийн ард 2-ыг нэмж байна.

	// хэмжээ буюу элемэнтийн тоог мэдэх.
	// бид маш олон тоо нэмсэн байлаа тэгээд одоо вектор нь хэдэн элемэнттэй болсныг мэдэхийг хүсвэл
	int n = v.size(), i; // гэхэд л хангалттай ба векторт байгаа элемэнтийн тоог буцаах болно.

	// бүх элемэнтийг хэвлэж байна.
	for(i = 0; i < n; i++) {
		printf("%d ", v[i]); 
	}
	printf("\n");

	// элемэнт устгах.
	// бид 1-р элемэнтийг устгахыг хүсвэл энэ нь их амархан
	v.erase( v.begin()+1 ); // 1-р элемэнтийг устгаж байна

	n = v.size(); // хэмжээ нь 1 элемэнт хассан тул өөрчлөгдөх тул дахин олно.
	// бүх элемэнтийг хэвлэж байна.
	for(i = 0; i < n; i++) {
		printf("%d ", v[i]); 
	}
	printf("\n");

	// элемэнт нэмэх
	// бид 1-р байрлалд 4 гэсэн тоог нэмэхийг хүсвэл энэ нь их амархан
	v.insert( v.begin()+1, 4 ); // 1р байрлалд 4 гэсэн элемэнтийг нэмлээ
	// бүх элемэнтийг хэвлэж байна.

	n = v.size(); // хэмжээ нь 1 элемэнт нэмсэн тул өөрчлөгдөх тул дахин олно.
	for(i = 0; i < n; i++) {
		printf("%d ", v[i]); 
	}
	printf("\n");

	// vetor-оо бид хоосон буюу ямар ч элемэнтгүй болгохыг хүсвэл энэ нь их амархан.
	v.clear(); // хоослох.
	return 0;
}
