// Энэ удаад 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;
}