1-Дәріс. Объектіге бағытталған бағдарламалаудың технологиясы


Итераторлар мен функциональды объекттер



бет37/43
Дата07.01.2022
өлшемі357,5 Kb.
#19368
1   ...   33   34   35   36   37   38   39   40   ...   43
Байланысты:
дәрістер жинағы

Итераторлар мен функциональды объекттер.

Итераторлар ұйымдастыру әдістері мен әрекеттер типіне тәуелсіз деректердің әрбір типіне қатынау және кезекті қарастыру құрылғылары болып табылады. Сөйтіп, итератор жалпыланған итератор болып табылады, және итератор мен көрсеткіш семантикасы бірдей STL –да итераторлар контейнерлі кластар, ағындар, мен буферлі ағындармен жұмыс істеу үшін қолданылады.

Деректер түрлі түрде ұйымдастырылуы мүмкін (массив, тізім, ағаш және тағы басқа) әрбір кезектілік түрі үшін белгілі операциялар жиынын қолдайтын итератордың өз типі талап етіледі (кіріс, шығыс,тура, екі бағытты, және кезекті қатынау). Итераторлы адаптерлер бар, мыналарды қолдайтын алгоритмдерді орындауды қамтамасыз ететін арнайы итераторлар: элементтері кері тәртіпте мөлшерден тыс жинау (кері итераторлар), енгізу режимі (енгізу итераторлары), және деректер ағынымен жұмыс (ағынды итераторлар).

Функционалды объект деп функцияны шақыру операциясы орындалған класс типі бар объектті атайды. Жиі түрде функционалды объекттер обънеттерді өңдеу әдістері мен оларды салыстырудың қолданушы контейнерлерін беруге арналған стандартты алгогритмдер параметрлері ретінде қолданылады. Параметр ретінде функционалды объектілер қолданылатын алгоритмдерде функцияғакөрсеткішті қолдануға болады. Bool мәнін қайтаратын функциональды объектілер бар және предикаттар деп аталады. Предикат деп bool мәнін қайтаратын жай функцияны айтады.


Алгоритмдер. Контейнерлердің өзі үлкен мәндерге иеленбейді. Пайдалы болу үлкен контейнер негізгі операциялармен жабдықталуы керек. Стандартты библиотека контейнер қолданушысынан талап етілетін көптеген кең таралған операциялардың орындалуына арналған алгоритмдерді ұсынады. Осындай алгоритмдер саны алпыс шамасында.

Әрбір алгоритм функция үлгісі түрінде немесе функциялардың үлгілерінің жиыны түрінде жүзеге асырылған.

Соның арқасында алгоритм кезекшіліктің әр түрімен жұмыс істей алады және түрлі типтердің деректерімен (жалпыланған бағдарламалаудың технологиясының концепциясы). Қолданушының нақты талаптарының алгоритмін баптау үшін функционалды объекттер қолданылады. Стандартты библиотеканың басқа құрылғылары сияқты стандартты алгоритмдерін қолдану программисті кезекшілікті өңдеу циклдерін құжаттау, түзету, жазудан айырады. Бұл бағдарламадағы қателерді кемітеді, өндіру уақытын қысқартады және анағұрлым оқылатын және компактті етеді.

STL барлық алгоритмдерді бес категорияға бөледі.:

-Кезекшілігі бар модиицирленбейтін операциялар;

-Кезекшілігі бар модиицирленетін операциялар;

- кезекшілікті сұрыптау алгоритмдері;

- көпшілікпен пирамидалармен жұмыс істеу алгоритмдері;

- жалпыланған сандық алгоритмдер;

Параметрлер ретінде алгоритмдерге өңделетін кезектіліктің басы мен соңын анықтайтын итераторлар беріледі.Итераторлар түрлері берілген алгоритм қолданылуы мүмкін контейнерлер типін анықтайды. Мысалы: сұрыптау алгоритмі sort ( ) еркін қатынау итераторларын қолдануды талап етеді.Сондықтан ол list контейнерлерімен жұмыс істей алмайды. Алгоритмдер кезекшілік щегінен шығуды тексермейді!





Достарыңызбен бөлісу:
1   ...   33   34   35   36   37   38   39   40   ...   43




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет