|
obj.find(…) sietaksisida ishlatiladi. Shu vaqtda algoritm quyidagicha funksiyani find( obj:iteator, … )
|
bet | 8/9 | Sana | 24.05.2024 | Hajmi | 0,71 Mb. | | #252108 |
Bog'liq Nishonova G (D2 M2)obj.find(…) sietaksisida ishlatiladi. Shu vaqtda algoritm quyidagicha funksiyani find( obj:iteator, … ) ishga tushuradi. Aslida, bu bitta algoritm emas, balki ularning butun bir katta guruhi maveud, ular to‘plam elementlarini baʻzi atribut, shart bilan tanlashlari asosida birlashtirilishi mumkin. Bu guruh predikatlariga find(), find_if(), find_if_not(), find_first_of(), find_end(), adjacent_find() funksiyalari kiradi. Shuningdek bu guruhda kengaytirilgan algoritmlar ham tegishlidir va bularga count(), count_if(), search(), binary_search(), min(), max(), minmax_element(), min_element(), max_element(), equal() kabi bir qator algoritmlar kiradi.
To‘plamga ishlov berish (aralashtirish) bir shartli guruh algoritmlar mavjud va ular joylarda elementlarni qayta tartibga soluvchi va qiymatlarni o‘zgartiruvchi
algoritmlardir: fill(), replace_copy(), reverse(), rotate(), rotate_copy(), shuffle(), random_shuffle(), transform(), replace(), replace_if() va boshqa funksiyalar.
Ikki to‘plamlar ustida bajariladigan algoritimlar guruhi ham mavjud. Bular asosan nusxalash, tarkibini ko‘chirib o‘tish (xar tipdagi konteynerlar uchun bo‘lishi mumkin. Masalan, vector<> ni set<> ga) funksiyalarini bajaradi. Bularga copy(), copy_if(), move(), swap_ranges(), remove_copy(), remove_copy_if(), merge(), set_intersection(), set_difference() va boshqa algoritmlar.
Nihoyat, juda maxsus guruh algoritmlari, to‘plam ichida elementlar turli saralash bilan bog‘liq funksiyalar sort(), stable_sort(), is_sorted(), is_sorted_until()va boshqa algoritmlar. Ushbu qiziqarli guruhni keyinroq, alohida batafsil ko‘rib chiqish kerak.
Kutubxonada vaqt o‘tishi bilan ortib borayotgan algoritmlarning ko‘pligi va ularning aksariyati adabiyotda hech qanday taʻriflanmasligiga qaramasdan, tabiiy savol tug‘iladi: bu xilma-xillikni qanday tushunish kerak? Bu qiyinchiliklar qanday engio‘ mumkin:
Barcha STL obʻyektlar (konteynerlar, algoritmlar) shablon sintaktiki bo‘yicha tasvirlangan. Shuning uchun, ularning tavsiflari, ularning header fayllarida dastur fragmentlari sifatida tuzilgan bo‘lishi kerak.
Kerakli algoritimlar uchun header fayllarni standart katalogiga o‘ting va stl_algo* kabi sarlavha fayllarini toping - uda barcha algoritm funksiyasi prototiplarini (o‘xshashlarini) topasiz. Bundan tashqari, har bir prototipi algoritm maqsadini tushuntirib va parametrlarini tushuntirishning batafsil izoh oldindan yozib ko‘yilgan.
Bir necha asosiy STL algoritmlarni foydalanishga doir misollar ko‘rib chiqing – kutubxonalar tizimida ularning ko‘pchiligi bor. O‘xshashlik bilan boshqa barcha algoritmlarni yaratish mumkin.
Shablon sinf kutubxonalar shablon jihatidan
|
| |