VECTOR-ын тухай.
vector гэдэг нь хэмжээгээ өөрчилж чаддаг массив гэж хэлж болно. Өөрөөр хэлбэл бид int a[2000] гэвэл a гэсэн массив нь 2000 ширхэг л элемэнт агуулах боломжтой юм. гэвч бид 247143 ширхэг элемэнт аль эсвэл 247 ширхэг элемэнт гэх мэт дурын хэмжээтэй мөн яг ямар хэмжээг нь мэдэхгүй тохиолдолд заавал энгийн массивыг int a[3000000] гэж зарлахад хүрнэ. Гэвч бид ердөө 247 ширхэг л тоо хадгалах хэрэгтэй тохиолдолд үлдсэн хэсэг нь ямар ч ашиггүй зүгээр л санах ойг дүүргэж байна. Харин vector-ын хувьд бол vector<төрөл> v; гэж зарлах ба энэ нь анх хоосон байх ба бид зөвхөн ашиглах элемэнтээ л хийж өгөхөд болно гэсэн үг юм. Мөн vector-т ашиглахад хялбар болгодог олон функц байдаг ба элемэнт устгах мөн элемэнт хүссэн байрлалдаа нэмэх гэх мэт. Тэгээд энэ хаяг дээр доорх код байгаа. - // Энэ удаад 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;
- }
Comments
Post a Comment