Skip to main content

Posts

Showing posts from March 17, 2018

Set

Set-н тухай. Set гэдэг нь элемэнтүүдийн эрэмбэлж хадгалдаг бүтэц юм. Элемэнт нэмэх, устгах гэх мэт үйлдлүүдийн LogN хугацаанд хийдэг мөн давхардлыг арилгадаг. Цаанаа өөр бүтэц ашигладаг тул бид 3-р элемэнтийг мэдэж чадахгүй юм. Харин iterator ашиглаж элемэнтүүдийг мэднэ. Доорхи код  энэ  хаягдээр байгаа. Доорхи бүх үйлдлийг Log(N) хугацаанд хийнэ(2суурьтай). Мөн хэрвээ давхардлыг арилгахгүй байлгамаар байгаа бол multiset ашиглах хэрэгтэй. Энэ нь адил утгатай элемэнт нэгээс олон удаа орж болно. Харин erase(утга) гэхэд өгөгдсөн утгатай тэнцүү утгатай бүх элемэнтүүд устах тул нэгийг л утгамаар байгаа бол it = s.find(утга); s.erase(it) гэдгийг ашиглаарай. insert(утга)-элемэнт нэмэх. erase(утга)-элемэнт устгах. lower_bound(утга)-өгөгдсөн утгаас их буюу тэнцүү хамгийн бага утгатай элемэнтийг буцаана upper_bound(утга)-өгөгдсөн утгаас эрс их хамгийн бага утгатай элемэнтийг буцаана хэрэв бүгд  бага бол end буюу хэмжээг буцаана // set-ын талаар үзэх болно.    #include <set> /