Топ питань
Часова шкала
Чат
Перспективи
Стандартна бібліотека шаблонів
програмне забезпечення З Вікіпедії, вільної енциклопедії
Remove ads
Стандартна бібліотека шаблонів (англ. Standard Template Library; STL) — бібліотека для C++, що містить набір узгоджених узагальнених алгоритмів, контейнерів, засобів доступу до їхнього вмісту і різних допоміжних функцій.
Стандартна бібліотека шаблонів до включення в стандарт C++ була сторонньою розробкою, на початку — фірми HP, а потім SGI. Стандарт мови не називає її «STL», оскільки ця бібліотека стала невід'ємною частиною мови, проте багато людей досі використовують цю назву, щоб відрізняти її від решти частини стандартної бібліотеки (потоки вводу/виводу (iostream), підрозділ Сі тощо).
Проект під назвою STLPort, заснований на SGI STL, здійснює постійне оновлення STL, IOstream і рядкових класів. Деякі інші проєкти також займаються розробкою приватних застосувань стандартної бібліотеки для різних конструкторських завдань. Кожен виробник компіляторів C++ обов'язково поставляє яку-небудь реалізацію цієї бібліотеки, оскільки вона є дуже важливою частиною стандарту і широко використовується.
Remove ads
Структура бібліотеки
У бібліотеці виділяють чотири основні компоненти:
- Контейнер (container) — зберігання набору об'єктів в пам'яті.
- Ітератор (iterator) — забезпечення засобів послідовного доступу до вмісту контейнера.
- Алгоритм (algorithm) — визначення обчислювальної процедури.
- Функціональний об'єкт (functor) — заховання функції в об'єкті для використання іншими компонентами.
Розділення дозволяє зменшити кількість компонентів. Наприклад, замість написання окремої функції пошуку елементу для кожного типу контейнера забезпечується єдина версія, яка працює з кожним з них, поки дотримуються основні вимоги.
Remove ads
Контейнери
Узагальнити
Перспектива
Контейнери бібліотеки STL можна розділити на чотири категорії: послідовні, асоціативні, контейнери-адаптери і псевдоконтейнери.
У контейнерах для зберігання елементів використовується семантика передачі об'єктів за значенням. Іншими словами, при додаванні контейнер отримує копію елементу, і за запитом на витягання також повертає копію елементу. Присвоєння елементів реалізується за допомогою оператора присвоєння, а їхнє руйнування відбувається з використанням деструктора.
У таблиці наведено основні вимоги до елементів в контейнерах:
Всі «повноцінні» стандартні контейнери задовольняють певному набору вимог (або угод). У наведеній нижче таблиці вважається, що С — клас контейнера, який містить об'єкти типу Т.
Remove ads
Ітератори
Узагальнити
Перспектива
У бібліотеці STL для доступу до елементів як посередник використовується узагальнена абстракція, що іменується ітератором. Кожен контейнер підтримує «свій» вид ітератора, який є «модернізованим» інтелектуальним вказівником, що «знає» як отримати доступ до елементів конкретного контейнера. Стандарт C визначає п'ять категорій ітераторів, описаних в наступній таблиці :
Посилання
- Довідник класів і методів SGI STL, сирці(англ.)
- STL по шагам(рос.) — статьи Артема Каева
- Основы C++. Библиотека STL(рос.) — архів розсилки
- STL — Стандартная библиотека шаблонов. Руководство C++ программиста(рос.) — докладне керівництво
- Использование STL в C++(рос.)
![]() |
Це незавершена стаття про програмування. Ви можете допомогти проєкту, виправивши або дописавши її. |
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads