Тақырыбы: Стандартты контейнерлі кластар
Дәріс мақсаты: контейнер түсінігімен танысу және контейнерлік кластарды қолдануға үйрену.
Кілттік сөздер: контейнер; контейнерлік класс; тізім; стек; кезек; дек.
Жоспар:
Контейнерлік кластар
Контейнерлік кластар.
Көптеген есептердің шешімі әр түрлі формадағы объектілердің жиынтығынан және өңдеулерінен тұрады.
Басқа типті объектілерді сақтауға және олармен жұмыс жасайтын объектті контейнер деп атайды. Контейнердің классикалық мысалдарына тізім, вектор, ассоциативті массивтер жатады. Кей кезде контейнер мазмұнын тізбектелген деп атайды.
С++ тілінде контейнерлерді контейнерлік және параметрлік кластарды қолдану арқылы жүзеге асырады.
Контейнерлік класс – кейбір объектілерді басқарушы объектіге,яғни контейнерге қосу үшін композиция немесе толтыру механизімін қолданатын өңдеуді қабылдау класы. Контейнерлік кластар бірнеше объектілік өрістерден немесе объектіге көрсететін өрістерден тұрады. Егер контейнерлік класс композиция механизімін қолданса, онда басқарушы объектілердің типі мен саны объектілік өрістердің типі және санымен анықталған. Егер толтыру механизімін қолданса, контейнер кейбір базалардың объектілерін және осы кластағы барлық объектілерін басқара алады.
Кез келген контейнерлік кластың негізгі мақсаты объектілерді тізбектеп өңдеу. Бұл өңдеу екі әдіспен жүзеге асырылады:
Контейнердің барлық элементтерін қарау үшін құрылған арнайы процедураға негізделеді. Бұл процедураға параметр ретінде контейнер элементтерін өңдеу алгоритмін жүзеге асыратын функция немесе процедура аты беріледі.
Берілген контейнердің түріне сәйкес келетін анықталған итератор немесе класс итераторы арқылы жүзеге асырылады. Итераторлардың көмегімен программист контейнерлермен жұмыс жасай алады. Бірнеше кілттік компонеттік функциялар программистке тізбектелген элементтердің соңын табуға мүмкіндік береді.
Әдетте контейнерлік кластар вектор(vector), тізім(enumeration), динамикалық вектор(dynamic vector), стек(stack), очередь(queue), дек(deq), жиын(set), бір және бірнеше байланыс тізімдер(lists) типтік структураларды жүзеге асырады.
Осы келтірілген тізімнен вектор мен тізім динамикалық емес структурулар.
Стек – элементтерді қосуға және алуға болатын бір жақ шеті дәнекерленген труба ретінде елестетуге болатын контейнер. Стек LIFO қызметін жүзеге асырады (Last in – first out, соңғы келген – бірінші кетеді.)
Достарыңызбен бөлісу: |