STL KOMPONENTLARI VA KANTENERLAR BILAN TANISHISH. Ommaviy bo'lgan konteyner, iterators va algoritmlarni markaziy o'rinni egallaydi, ular orasida turli tarkibiy qismlariga, o'zaro asoslangan.
Konteynerlar ma'lum bir turdagi ob'ektlar to'plamlarini boshqarish uchun mo'ljallangan. Har bir konteyner turi o'ziga xos afzalliklari va kamchiliklariga ega, shuning uchun har xil konteynerlarning mavjudligi dasturlardagi yig'ish talablari o'rtasidagi farqlarni aks ettiradi. Konteynerlar massiv yoki bog'langan ro'yxat sifatida amalga oshirilishi mumkin va har bir elementga maxsus kalit berilishi mumkin.
Iteratorlar ob'ektlar to'plamidagi elementlarni (konteynerlar yoki ularning pastki qismlari) takrorlash uchun mo'ljallangan. Takroratorlarning asosiy afzalligi shundaki, ular har qanday konteyner turiga mos keladigan kichik, ammo standart interfeysni taqdim etadi. Masalan, ushbu interfeysning asosiy operatsiyalaridan biri iteratorni to'plamdagi keyingi elementga o'tkazishdir. Dasturlarda bunday operatsiya to'plamning ichki tuzilishidan mustaqil ravishda amalga oshiriladi va uni massivga ham, daraxtga ham qo'llash mumkin. Har bir konteyner klassi o'z iterator turini belgilaydi, bu ishni bajaradi, chunki u konteynerning ichki tuzilishini biladi.
Iterator interfeysi odatiy ko'rsatgich interfeysi bilan juda ko'p o'xshashliklarga ega. Takrorlovchi ++ operatori yordamida ko'paytiriladi va * operatori operator tomonidan havola qilingan qiymatga kirish uchun ishlatiladi. Shunday qilib, iteratorni "keyingi bandga o'tish" buyrug'ini ma'lum bir konteyner turi uchun zarur bo'lgan harakatlarga tarjima qiladigan aqlli ko'rsatgich deb hisoblash mumkin.
Algoritmlar to'plamdagi narsalarni qayta ishlashga mo'ljallangan. Masalan, algoritmlar to'plam elementlarini qidirish, saralash, o'zgartirish yoki oddiygina boshqa maqsadlarda ishlatishi mumkin. Algoritmlarda iteratorlar ishlatiladi. Shunday qilib, algoritm umumiy konteyner uchun faqat bir marta dasturlashtirilishi kerak, chunki iterator interfeysi barcha konteynerlar uchun umumiydir.
Moslashuvchanlikni oshirish uchun yordamchi funktsiyalar algoritmlarga uzatiladi, ular algoritmlarning ishlashi paytida chaqiriladi. Shunday qilib, umumiy algoritm aniq maqsadlarga, hatto juda aniq va murakkab maqsadlarga moslashadi. Masalan, algoritmga elementlarni guruhlash uchun maxsus qidiruv mezonini yoki maxsus operatsiyani o'tkazishingiz mumkin.
STL kontseptsiyasi ma'lumotlar va operatsiyalarni ajratishga asoslangan. Ma'lumotlar konteyner sinflari tomonidan boshqariladi va operatsiyalar moslashuvchan algoritmlar asosida amalga oshiriladi. Ikteratorlar ikkalasi orasidagi "yopishtiruvchi" vazifasini bajaradi. Ularning yordami bilan har qanday algoritm har qanday konteyner bilan ishlay oladi (1-rasm).