standard template library
Комплетан преглед библиотеке стандардних шаблона (СТЛ):
Стандардна библиотека шаблона (СТЛ) на Ц ++ је колекција класа шаблона која пружа структуре података као што су низови, вектори, ред итд. СТЛ је библиотека која се састоји од контејнера, алгоритама и итератора.
Како се СТЛ састоји од колекције класа предложака, то је генерализована библиотека која је независна од типова података.
=> Овде прочитајте опширну серију водича за обуку за Ц ++.
Шта ћете научити:
осигурање квалитета насупрот контроли квалитета
Компоненте СТЛ
СТЛ се углавном састоји од следећих компонената које су поменуте у наставку:
# 1) Контејнери
Контејнер је колекција објеката одређене врсте структуре података. У СТЛ имамо разне врсте класа контејнера попут низа, вектора, реда, декуе, листе, мапе, скупа итд. Ови контејнери су генеричке природе и примењују се као предлошци класа.
Посуде су динамичне природе и могу се користити за држање различитих врста предмета.
# 2) Алгоритми
Алгоритми су методе или функције које делују на контејнере. Коришћењем алгоритама које пружа СТЛ, можемо имати методе претраживања, сортирања, модификовања, трансформисања или иницијализације садржаја објеката класе контејнера.
Алгоритми које пружа СТЛ имају уграђене функције које могу директно да раде на сложеној структури података, уместо да сами морамо да пишемо алгоритме.
На пример, Функција реверсе () у СТЛ-у се може користити за обртање повезане листе.
# 3) Итератори
Итератори су веома важна и препознатљива карактеристика СТЛ-а. Итератори су конструкције које се користе за прелазак објеката контејнера. Слично индексима које користимо за пролазак кроз низове, итератори делују на објекте класе контејнера и могу се користити за пролазак кроз податке.
Контејнери
Контејнери чувају предмете и податке. У основи су то генеричке класе засноване на предлошцима.
Контејнери у СТЛ подељени су у следеће типове:
# 1) Секвенцијални контејнери
Сматра се да су контејнери којима се може приступити на секвенцијални или линеарни начин секвенцијални контејнери.
Низови, вектори, листе, декери су СТЛ контејнери који линеарно чувају податке и којима се може приступити секвенцијално.
# 2) Асоцијативни контејнери
Асоцијативни контејнери су контејнери који примењују сортиране структуре података. Ови контејнери се брзо претражују. Неки од Примери асоцијативних контејнера су Мап, Сет, МултиМап, Мултисет итд. Ови контејнери се обично примењују у пару кључ / вредност.
најпопуларнији оперативни системи за личне рачунаре
# 3) Усвојитељи контејнера
Усвајачи контејнера су секвенцијални контејнери, међутим они се примењују пружањем другачијег интерфејса. Стога су контејнери попут реда, декуе, стацк-а и реда приоритета класификовани као усвојитељи контејнера.
Итераторе
Итератори су конструкције које користимо за прелазак или пролазак кроз контејнере у СТЛ-у. Итератори су веома важни у СТЛ-у јер делују као мост између алгоритама и контејнера. Итератори увек указују на контејнере, а заправо алгоритми заправо делују на итераторима, а никада директно на контејнере.
Итератори су следећих врста:
- Улазни итератори: Најједноставнији и користи се углавном у једнопролазним алгоритмима.
- Излазни итератори: Исто као улазни итератори, али се не користи за прелазак.
- Двосмерни поновитељи: Ови итератори се могу кретати у оба смера.
- Прослеђивачи: Може се користити само у правцу кретања унапред, корак по корак.
- Итератори са случајним приступом: Исто као и показивачи. Може се користити за случајни приступ било ком елементу.
Алгоритми
Алгоритми су скуп функција или метода које пружа СТЛ које делују на контејнере. То су уграђене функције и могу се користити директно са СТЛ контејнерима и итераторима уместо да пишу сопствене алгоритме.
СТЛ подржава следеће типове алгоритама:
- Алгоритми претраживања
- Алгоритми за сортирање
- Измена или манипулација алгоритмима
- Алгоритми који се не мењају
- Нумерички алгоритми
- Мин / Мак алгоритми
Као што сугерише сваки од типова алгоритама, ови алгоритми се могу користити за постизање различитих функционалности у СТЛ контејнерима попут претраживања, сортирања, трансформације података у контејнерима, проналажења мин / макс вредности итд.
Закључак
Ово је кратко представљање библиотеке стандардних шаблона. У нашим предстојећим водичима сазнаћемо више о сваком од контејнера, алгоритама и итератора.
=> Овде погледајте комплетну Ц ++ БЕСПЛАТНУ серију тренинга.