Программалау оқулық Алматы, 012 Қазақстан Республикасы Білім жəне ғылым министрлігінің «Оқулық»



Pdf көрінісі
бет480/642
Дата30.03.2022
өлшемі3,66 Mb.
#29231
түріПрограмма
1   ...   476   477   478   479   480   481   482   483   ...   642
Байланысты:
pavlovskaia-jogargy-dengeili

i

 жəне 


j

 – бір түрдегі итераторлар, 



x

 – тізбек элементімен 

бірдей типтегі элемент, 

n

 – бүтін шама болсын. Онда келесі өрнектерді 

жазуға болады:

i++   ++i   i = j   i == j   i != j

13.1-кесте.

 Итераторлардың категориялары



Итератор категориясы

Операциялар

Контейнерлер

кіріс (



input

)

x = *i

барлығы


шығыс (

output

)

*i = x

барлығы


тура (

forward

)

x = *i, *i = x

барлығы


екібағытты

(

bidirectional

)

x = *i

, *i = x, 



--i, i--

барлығы


кездейсоқ қол 

жеткізілетін



(

random access

)

x = *i, *i = x, 

-- i , i--

i + n, i - n, i += n, i -= n 

i < j, i > j, i <= j, i >= j

list

 класынан  

басқаларының 

барлығы


Кестеден байқап отырғанымыздай, 

тура итератор кіріс жəне шығыс 

итераторларының барлық операцияларын сүйемелдейді жəне олар кіріс неме-

се шығыс итераторлары қажет болған барлық жерлерде қолданылуы мүмкін. 

Екібағытты итератор тура итератордың барлық операцияларын сүйемелдейді, 

декрементті де қолдайды жəне тура итератор қолданылатын барлық жерлер-

де пайдаланылуы мүмкін. 

Кездейсоқ қол жеткізілетін итератор екібағытты 

итератордың барлық операцияларын сүйемелдейді, сонымен қатар, тізбектің 

кездейсоқ элементіне көшуді жəне операторларды салыстыру əрекеттерін де 

орындайды. 

Итераторлар иерархия құрады деп айтуға болады, оның жоғарғы деңгейінде 

кездейсоқ қол жеткізу итераторлары орналасады. Итератордың деңгейі 

неғұрлым жоғары болған сайын, ол құрамында жұмыс істейтін контейнер-

ге соғұрлым жоғары функционалдық талаптар қойылады. Мысалы, тізімдер 

үшін кездейсоқ қол жеткізу итераторларын қолдануға болмайды, өйткені тізім 

итератордың қажетті операциялар жиынтығын сүйемелдемейді. 

Итерациялық кластар мен функциялар 

 тақырыптық файлын-

да сипатталған. Стандартты контейнерлерді қолдану кезінде бұл файл авто-

матты түрде іске қосылады. 

Итераторлар тұрақтылық болуы мүмкін. Тұрақтылық итераторлар 

контейнердің соған сəйкес элементтерінің мəндерін өзгерту қажеттілігі 

болмаған кезде қолданылады.



358

Итератор 



жарамды (ол қандай да бір элементке нұсқап тұрса) немесе 

жарамсыз болуы мүмкін. Итератор келесі жағдайларда жарамсыз болып 

қалуы мүмкін:

 



итератор инициалданған жоқ;



 

ол байланысқан контейнер өлшемдері өзгерген немесе ол жойылған;



 

итератор тізбектің соңына нұсқайды.



Тізбектің соңы оның соңғы элементінен кейін орналасқан элементке 

нұсқауыш түрінде бейнеленеді.  Мұндай нұсқауыш əрқашанда бар болады. 

Осындай тəсілді қолдану бос тізбекті ерекше жағдай ретінде қарастырмауға 

мүмкіндік береді. «Нөлдік итератор» ұғымы болмайды. 

Итераторлар өздері нұсқайтын объектілермен жұмыс істеу үшін  (мыса-

лы, контейнер элементінің мəнін алу үшін) қолданылатындықтан, соларға 

сəйкес типтерді анықтау қажет. Ол үшін 

 тақырыптық файлында 





Достарыңызбен бөлісу:
1   ...   476   477   478   479   480   481   482   483   ...   642




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

    Басты бет