standard template library
Пълен преглед на стандартната библиотека с шаблони (STL):
Стандартната библиотека на шаблони (STL) на C ++ е колекция от класове на шаблони, които предоставят структури от данни като масиви, вектори, опашка и др. STL е библиотека, състояща се от контейнери, алгоритми и итератори.
Тъй като STL се състои от колекция от класове на шаблони, това е обобщена библиотека, която е независима от типовете данни.
=> Прочетете обширната серия учебни уроци за C ++ тук.
Какво ще научите:
какви видове приложения тестваме
Компоненти на STL
STL се състои главно от следните компоненти, които са споменати по-долу:
# 1) Контейнери
Контейнерът е колекция от обекти от определен тип структура на данните. В STL имаме различни типове класове контейнери като Array, vector, queue, deque, list, map, set и др. Тези контейнери са от общ характер и се прилагат като шаблони за класове.
Контейнерите имат динамичен характер и могат да се използват за съхранение на различни видове предмети.
# 2) Алгоритми
Алгоритмите са методите или функциите, които действат върху контейнери. Използвайки алгоритми, предоставени от STL, можем да имаме методи за търсене, сортиране, модифициране, трансформиране или инициализиране на съдържанието на обекти от клас контейнери.
Алгоритмите, предоставени от STL, имат вградени функции, които могат директно да работят върху сложна структура от данни, вместо да се налага сами да записваме алгоритмите.
Например, Функцията reverse () в STL може да се използва за обръщане на свързания списък.
# 3) Итератори
Итераторите са много важната и отличителна черта на STL. Итераторите са конструкциите, които се използват за преминаване през контейнерните обекти. Подобно на индексите, които използваме за преминаване през масивите, итераторите действат върху обекти от клас контейнери и могат да бъдат използвани за преминаване през данните.
Контейнери
Контейнерите съхраняват обекти и данни. Те са основно базирани на шаблони родови класове.
Контейнерите в STL са разделени на следните типове:
# 1) Последователни контейнери
Контейнерите, до които може да се достигне последователно или линейно, се казват, че са последователни контейнери.
Масиви, вектори, списъци, декети са STL контейнерите, които съхраняват данни линейно и могат да бъдат достъпни по последователен начин.
# 2) Асоциативни контейнери
Асоциативните контейнери са контейнери, които прилагат сортирани структури от данни. Тези контейнери са бързи за търсене. Някои от Примери на асоциативни контейнери са Map, Set, MultiMap, Multiset и др. Тези контейнери обикновено се изпълняват по двойка ключ / стойност.
как да отворите разширението на JSON файл
# 3) Осиновители на контейнери
Приемащите контейнери са последователни контейнери, но те се изпълняват чрез предоставяне на различен интерфейс. По този начин контейнери като опашка, deque, стек и опашка с приоритет се класифицират като приемници на контейнери.
Итератори
Итераторите са конструкции, които използваме за преминаване или преминаване през контейнери в STL. Итераторите са много важни в STL, тъй като те действат като мост между алгоритмите и контейнерите. Итераторите винаги сочат към контейнери и всъщност алгоритмите всъщност работят върху итератори и никога директно върху контейнери.
Итераторите са от следните типове:
- Входни итератори: Най-просто и се използва най-вече в еднопроходни алгоритми.
- Изходни итератори: Същото като входните итератори, но не се използва за обхождане.
- Двупосочни итератори: Тези итератори могат да се движат в двете посоки.
- Препращащи итератори: Може да се използва само в посока напред, стъпка по стъпка.
- Итератори с произволен достъп: Същото като указателите. Може да се използва за произволен достъп до всеки елемент.
Алгоритми
Алгоритмите са набор от функции или методи, предоставени от STL, които действат върху контейнери. Това са вградени функции и могат да се използват директно със STL контейнерите и итераторите, вместо да пишем нашите собствени алгоритми.
STL поддържа следните типове алгоритми:
- Алгоритми за търсене
- Алгоритми за сортиране
- Модифициране или манипулиране на алгоритми
- Немодифициращи алгоритми
- Числени алгоритми
- Мин / Макс алгоритми
Както всеки от типовете алгоритми предполага, тези алгоритми могат да се използват за постигане на различна функционалност в STL контейнери като търсене, сортиране, трансформиране на данните в контейнерите, намиране на минимална / максимална стойност и т.н.
Заключение
Това е краткото въведение на библиотеката със стандартни шаблони. В предстоящите ни уроци ще научим повече за всеки от контейнерите, алгоритмите и итераторите.
=> Проверете пълната C ++ БЕЗПЛАТНА серия за обучение тук