Skip to main content

Posts

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...

Функц

Функцийн тухай. Функцийг бид байнга ашигладаг. Векторт элемэнт нэмэх эсвэл тооны язгуурыг олох гэх мэт. Эдгээр функцууд нь өөрийн гэсэн сандээр байрладаг ба бид хүссэн үедээ ашиглаж болдог. Энэ удаад бид өөрсдөө хэрхэн функц зохиох талаар үзэх болно. Өөрсдөө функц бичих нь ямар ашигтай вэ? гэвэл кодыг илүү цэгцтэй мөн нэг бодсон зүйлийг олон дахин бичих шаардлагагүй болгодог. Бид өөрдсөө функцаа бичиж байгаа тул буцаах утга мөн авах утга мөн нэр гэх мэт зүйлсийг өөрөө зохион бичиж өгнө. Доорхи код  энэ  хаягдээр байгаа. Буцаах утгуудын хувьд int, long long, double, string, char эсвэл vector, массив ч байж болно. Харин тодорхой утга буцаах шаардлагагүй гэвэл void гэнэ. // функц    #include <iostream>    using   namespace  std;      void  plp(  int  a,  int  b ) {  // a -> b хүртэл хэвлэх функц  ...

Priority_queue

Priority queue-н тухай. Priority_queue гэдэг нь хамгийн их утгатай элемэнтийг хамгийн эхэнд нь хадгалдаг бүтэц. Энэ нь эрэмбэлдэг гэсэн үг биш. Ашигтай тал нь гэвэл элемэнт нэмэх, болон хамгийн их элемэнтийг устгахад log(N) үйлдэл хийнэ(2суурьтай үүнээс цааш сануулахгүй). Харин хамгийн их элемэнтийг мэдэхэд 1 үйлдэл юм. Доорхи код э нэ  хаяг дээр байгаа. push(утга) - утгыг нэмэх. (элемэнт нэмэх) pop() - хамгийн их элемэнтийг устгах. top() - хамгийн их элемэнтийн утгыг буцаана. size() - элемэнтийн хэмжээ. empty() - хоосон бол 1 үгүй бол 0 гэсэн утгыг буцаана. (True or False) // priority_queue    #include <iostream>    #include <queue> // priority_queue агуулж буй сан    using   namespace  std;      int  main() {        /*           priority_queue гэ...