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



Pdf көрінісі
бет328/465
Дата09.01.2023
өлшемі3,66 Mb.
#60709
түріПрограмма
1   ...   324   325   326   327   328   329   330   331   ...   465
Байланысты:
аибм сплюс

*
жəне 
->
операцияларының көмегімен 
орындалады. Ал келесі элементке көшу инкремент 
++
операциясы арқылы 
жүзеге асырылады. Сонымен қатар, барлық итераторлар үшін меншіктеу, 
теңдікке жəне теңсіздікке тексеру операциялары анықталған.
Мəліметтер əртүрлі жолдармен – мысалы, жиым, тізім, вектор немесе 
бұтақ түрінде ұйымдастырылуы мүмкін. Тізбектің жеке бір түрі үшін əртүрлі 
операциялар жиынтығын сүйемелдейтін итератордың өзіндік типі болуы тиіс. 
Қамтамасыз етілетін операцияларының жиынтығына сəйкес итераторлар 


357
13.1-кестеде сипатталған бес категорияға, яғни санаттарға бөлінеді. Кестеде 
келтірілген операциялар тұрақты уақыт ішінде орындалады. 
Айталық, 
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
класынан
басқаларының 
барлығы
Кестеден байқап отырғанымыздай
тура итератор кіріс жəне шығыс 
итераторларының барлық операцияларын сүйемелдейді жəне олар кіріс неме-
се шығыс итераторлары қажет болған барлық жерлерде қолданылуы мүмкін. 
Екібағытты итератор тура итератордың барлық операцияларын сүйемелдейді, 
декрементті де қолдайды жəне тура итератор қолданылатын барлық жерлер-
де пайдаланылуы мүмкін. 
Кездейсоқ қол жеткізілетін итератор екібағытты 
итератордың барлық операцияларын сүйемелдейді, сонымен қатар, тізбектің 
кездейсоқ элементіне көшуді жəне операторларды салыстыру əрекеттерін де 
орындайды. 
Итераторлар иерархия құрады деп айтуға болады, оның жоғарғы деңгейінде 
кездейсоқ қол жеткізу итераторлары орналасады. Итератордың деңгейі 
неғұрлым жоғары болған сайын, ол құрамында жұмыс істейтін контейнер-
ге соғұрлым жоғары функционалдық талаптар қойылады. Мысалы, тізімдер 
үшін кездейсоқ қол жеткізу итераторларын қолдануға болмайды, өйткені тізім 
итератордың қажетті операциялар жиынтығын сүйемелдемейді. 
Итерациялық кластар мен функциялар 


Достарыңызбен бөлісу:
1   ...   324   325   326   327   328   329   330   331   ...   465




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

    Басты бет