standard template library
Повний огляд стандартної бібліотеки шаблонів (STL):
Стандартна бібліотека шаблонів (STL) на C ++ - це колекція класів шаблонів, що забезпечують такі структури даних, як масиви, вектори, черга тощо. STL - це бібліотека, що складається з контейнерів, алгоритмів та ітераторів.
Оскільки STL складається з колекції класів шаблонів, це узагальнена бібліотека, яка не залежить від типів даних.
=> Прочитайте тут обширну серію навчальних посібників для C ++.
Що ви дізнаєтесь:
як писати тестові кейси в аркуші Excel
Компоненти STL
STL в основному складається з наступних компонентів, які згадані нижче:
# 1) Контейнери
Контейнер - це сукупність об’єктів певного типу структури даних. У STL ми маємо різні типи класів контейнерів, такі як Array, vector, queue, deque, list, map, set тощо. Ці контейнери мають загальний характер і реалізуються як шаблони класів.
Контейнери мають динамічний характер і можуть використовуватися для зберігання різних типів предметів.
# 2) Алгоритми
Алгоритми - це методи або функції, що діють на контейнери. Використовуючи алгоритми, надані STL, ми можемо мати методи пошуку, сортування, модифікації, перетворення або ініціалізації вмісту об’єктів класу контейнерів.
Алгоритми, надані STL, мають вбудовані функції, які можуть безпосередньо працювати на складній структурі даних, замість того, щоб писати алгоритми самостійно.
Наприклад, Функція reverse () у STL може бути використана для звороту пов'язаного списку.
# 3) Ітератори
Ітератори є дуже важливою та відмінною рисою STL. Ітератори - це конструкції, які використовуються для обходу об'єктів контейнера. Подібно до індексів, які ми використовуємо для проходження масивів, ітератори діють на об'єкти класу контейнерів і можуть використовуватися для переходу до даних.
як відкрити файл eps на ПК -
Контейнери
Контейнери зберігають об'єкти та дані. В основному це загальні класи на основі шаблонів.
Контейнери в STL поділяються на такі типи:
# 1) Послідовні контейнери
Контейнери, до яких можна отримати послідовний або лінійний спосіб, називаються послідовними контейнерами.
Масиви, вектори, списки, декі - це контейнери STL, які зберігають дані лінійно і до них можна отримати послідовний доступ.
# 2) Асоціативні контейнери
Асоціативні контейнери - це контейнери, що реалізують відсортовані структури даних. Ці контейнери швидко шукати. Деякі з Приклади з асоціативних контейнерів - це Map, Set, MultiMap, Multiset тощо. Ці контейнери зазвичай реалізуються в парі ключ / значення.
# 3) Приймачі контейнерів
Приймачі контейнерів є послідовними контейнерами, однак вони реалізовані шляхом надання іншого інтерфейсу. Таким чином, такі контейнери, як черга, деке, стек та пріоритетна черга, класифікуються як приймачі контейнерів.
Ітератори
Ітератори - це конструкції, які ми використовуємо для переходу або переходу через контейнери в STL. Ітератори дуже важливі в STL, оскільки вони виступають мостом між алгоритмами та контейнерами. Ітератори завжди вказують на контейнери, а насправді алгоритми насправді діють на ітераторах, а ніколи безпосередньо на контейнерах.
Ітератори бувають таких типів:
- Вхідні ітератори: Найпростіший і використовується переважно в однопрохідних алгоритмах.
- Вихідні ітератори: Те саме, що ітератори введення, але не використовуються для обходу.
- Двонаправлені ітератори: Ці ітератори можуть рухатися в обох напрямках.
- Вперед ітератори: Можна використовувати лише в прямому напрямку, по одному кроку.
- Ітератори довільного доступу: Те саме, що покажчики. Може використовуватися для випадкового доступу до будь-якого елемента.
Алгоритми
Алгоритми - це набір функцій або методів, наданих STL, які діють на контейнери. Це вбудовані функції, які можна використовувати безпосередньо з контейнерами та ітераторами STL замість написання власних алгоритмів.
STL підтримує такі типи алгоритмів:
- Алгоритми пошуку
- Алгоритми сортування
- Зміна або маніпулювання алгоритмами
- Немодифікуючі алгоритми
- Числові алгоритми
- Алгоритми Min / Max
Як підказує кожен із типів алгоритмів, ці алгоритми можна використовувати для досягнення різних функціональних можливостей у контейнерах STL, таких як пошук, сортування, перетворення даних у контейнерах, знаходження мінімального / максимального значення тощо
Висновок
Це короткий вступ до бібліотеки стандартних шаблонів. У наших майбутніх підручниках ми дізнаємось більше про кожен із контейнерів, алгоритмів та ітераторів.
=> Ознайомтесь із Повною серією навчальних програм для C ++ тут.