Skip to main content

Posts

Recursion

Рекурсивын тухай. Энэ нь өөрөө өөрийгөө дуудаж чаддаг функц юм. Жишээгээр ойлгомжтой байх болов уу? Жишээ нь бид 1  ээс  N хүртэл хэвлэмээр байлаа. Мэдээж үүнийг хийхэд амархан. Бид while, эсвэл for ашиглаад үүнийг шийдэж болно. Харин Рекурсив ашиглаад үүнийг хийвэл хэрхэн хийгдэх талаар.  Бид 1 гэсэн тоог хэвлээд дараа нь 2 гэсэн тоог хэвлэнэ. харин дараа нь 3 гэх мэт энэ нь N хүрээд зогсоно. Тэгвэл рекурсивийн зогсох нөхцөл нь N гэсэн үг ба бид N- ээс  ялгаатай K гэсэн тоог хэвлэсэн тохиолдолд 1- ээс  K хүртэл бүх тоог хэвлэсэн гэсэн үг ба K < N бага тул K+1 гэсэн тоог хэвлэх ёстой ба. Үргэлжлүүлэн хэвлэх ёстой гэсэн үг юм. Харин K == N нөхцөл биелбэл бид N хүртэлх бүх тоог хэвлэсэн гэсэн үг юм. Тиймээс үүгээр зогсоно. Бид N гэсэн тоог N-1 хүртэлх тоо хэвлэгдсэн гэж үзвэл үүний ард N гэсэн тоогоо хэвлэхэд хангалттай гэсэн үг юм. Тэгвэл N хүртэл хэвлэхийн тулд N-1 хүртэл хэвлэсэн байх ёсто...

Struct

Struct-н тухай. Дийлдэшгүй залхуу юм байна. Struct гэж юу вэ? Хэсэг зүйлсийг нэгтгэж нэг бүлэг болгон ашигладаг бүтэц юм. Өмнө нь pair-ын талаар үзсэн. Энэ нь хос болгож авж байсан. Харин бид маш олон зүйлсийг pair ашиглан бичихэд бага зэрэг асуудалтай учрах юм. Өөрөөр хэлбэл олон ширхэг зүйлсийг хос болгосон гэж үзэхэд хандахын тулд a.first.first.first гэх жишэээний. Мөн аль байрлалдах нь ямар утгыг агуулж байгаа билээ гэх мэт бодох асуудал ихтэй. Struct нь бүлэг үүсгэхдээ бүлгийн гишүүн бүрийн авах төрөл мөн нэрийг нь бичэж өгдгөөрөө давуу талтай. Жинээ нь бид Person гэсэн бүтэц үүсгэсэн гэж бодъё. Тэгвэл энэ бүлэгт name, age, sex байж болох юм. Сониноос тэр цэг таслалыг мартваа. Доорхи код  энэ  хаягт байгаа. struct нэр{ гишүүний төрөл гишүүний нэр; гишүүний төрөл гишүүний нэр; .... гишүүний төрөл гишүүний нэр; }; Жишээ нь: struct person{ string name; string sex; int age; }; //struct    #include <vector>    #include...

Pair

Pair-н тухай. Юу ч хийхгүй байсан тул шинэ юм оруулахаар шийджээ. Pair гэж юу вэ? Энэ нь шууд утгаараа буюу 2 зүйлийг нийлүүлж хос болгодог гэсэн үг. Өөрөөр хэлбэл int a; гэсэн тохиолдолд зөвхөн 1 л бүхэл тоо авна. Харин pair<int,int> a; гэсэн тохиолдолд a гэсэн хувьсагч нь 2 тоо зэрэг авж чадна гэсэн үг юм. Үүнийг int a[2]; гэхэд болох ч энэ 2 нь тус тусдаа буюу a[0], a[1] гэсэн 2 өөр хувьсагчууд юм. Харин pair бол энэ 2 нь салахгүй үргэлж хамтдаа явна гэсэн үг. Харин энэ хосын эхний байрлалдах утгад хандахыг хүсвэл a.first, 2 дахь бол a.second гэхэд л болно. pair нь бичсэнчлэн хос болгодог гэсэн тул pair<pair<int,int>, int> > a; гэж болох ба энэ нь 3 ширхэг тоо авах ба хандахдаа a.first.first, a.first.second, a.second гэнэ. pair<төрөл, төрөл> гэсэн бүтэцтэй. Доорхи код  энэ  хаягдээр байгаа.  // pair    #include <vector>    #include <iostream>    using   namespace  std...