Контейнерлі кластар
Контейнер – бұ л белгілі бір тү рде ұ йымдастырылғ ан басқ а объектілер жиыны қ ұ райтын объект. Контейнерлер анық типтің объект коллекцияларын басқ ару ү шін арналғ ан. Контейнерлер мысалдары массивтер (векторлар жә не ассоциативті массивтер) жә не тізімдер (жекеленген тізімдер, кезектер, стектер) болып табылады. Контейнерге объектілерді қ осуғ а болады жә не оларды одан жоюғ а болады. Контейнермен жұ мыс, стандартты библиотекадағ ы контейнерлі кластар кө мегімен қ олдау табады. Бұ л мү мкіндік класс ү лгілері арқ ылы жү ргізіледі. Контейнерлерді қ олдану бағ дарламалар сенімділігін жоғ арлатуғ а, олардың тасмалдануымен бір мезгілдегі уақ ыттың кемуі мен ө ндіру қ ұ ны бар ә мбебаптылық қ а мү мкіндік береді. STL контейнерлі кезекті жә не ассоциативті деп бө лінеді. Кезекті контейнерлер ү здіксіз кезектілігі тү ріндегі бір типті объектілердің соң ғ ы санын анық тауда қ амтамасыз етеді жә не келесі тү рлері бар. Векторлар (vector); екі жақ ты кезектер немесе басқ аша айтқ анда деректер (deque); тізімдер (list); стегтер (stack); кезектер (quere); приоритеттері бар кезектер (priority-quere). Ассоциотивті кезектер сұ рыптаудың белгілі критериі бойынша оның мә ніне тә уелді объект(элемент) позициясы бар сұ рыпталғ ан коллекцияларды береді. Ассщциотивті контейнерлер кілт бойынша деректермен тез қ атынауды қ амтамасыз етеді жә не балансталғ ан ағ аштар негізінде қ ұ рылғ ан. Ассоциотивті контейнерлердің келесі тү рлері бар: сө здіктер(map); кө шірмелері бар сө здіктер (multimap); кө пшіліктер (set); кө термелері бар кө пшіліктер (multiset); биттік кө пшіліктер (bitset). Тү рлі контейнерлі кластардың ортақ қ асиеттері кө п жә не бұ л ө те қ олайлы. Контейнерлі кластардың стандартталғ ан интерфейсі бар.Бұ ү л тү рлі контейнерлі кластардағ ы бір атты деректер мү шелер мен операциялардың мағ ынасы бірдей екендігін білдіреді жә не контейнерлердің барлық типтеріне қ олданамыз.
Итераторлар мен функциональды объекттер. Итераторлар ұ йымдастыру ә дістері мен ә рекеттер типіне тә уелсіз деректердің ә рбір типіне қ атынау жә не кезекті қ арастыру қ ұ рылғ ылары болып табылады. Сө йтіп, итератор жалпыланғ ан итератор болып табылады, жә не итератор мен кө рсеткіш семантикасы бірдей STL –да итераторлар контейнерлі кластар, ағ ындар, мен буферлі ағ ындармен жұ мыс істеу ү шін қ олданылады. Деректер тү рлі тү рде ұ йымдастырылуы мү мкін (массив, тізім, ағ аш жә не тағ ы басқ а) ә рбір кезектілік тү рі ү шін белгілі операциялар жиынын қ олдайтын итератордың ө з типі талап етіледі (кіріс, шығ ыс, тура, екі бағ ытты, жә не кезекті қ атынау). Итераторлы адаптерлер бар, мыналарды қ олдайтын алгоритмдерді орындауды қ амтамасыз ететін арнайы итераторлар: элементтері кері тә ртіпте мө лшерден тыс жинау (кері итераторлар), енгізу режимі (енгізу итераторлары), жә не деректер ағ ынымен жұ мыс (ағ ынды итераторлар). Функционалды объект деп функцияны шақ ыру операциясы орындалғ ан класс типі бар объектті атайды. Жиі тү рде функционалды объекттер обънеттерді ө ң деу ә дістері мен оларды салыстырудың қ олданушы контейнерлерін беруге арналғ ан стандартты алгогритмдер параметрлері ретінде қ олданылады. Параметр ретінде функционалды объектілер қ олданылатын алгоритмдерде функцияғ акө рсеткішті қ олдануғ а болады. Bool мә нін қ айтаратын функциональды объектілер бар жә не предикаттар деп аталады. Предикат деп bool мә нін қ айтаратын жай функцияны айтады.
Негізгі ә дебиет-5[б.9, 981-315], 6[б1.1, 6-15], 8[б.14, 419-472] Бақ ылау сұ рақ тары 1. Белгілі бір кластың екі обьектісін анық тасақ, онда олар ө здерінің мү ше-берілгендерінің ә ртү рлі (бірдей) мә ндеріне ие бола ала ма? 2. Жалпыланғ ан бағ дарламалаудың технологиясының концепциясы? 3. Контейнерлер дегеніміз не, олар не ү шін керек? 4. Итераторлар не ү шін арналғ ан? 5. Қ андай операциялар итератордың кез келген типі ү шін мү мкін болып табылады?
|