STL містить кілька основних сутностей. Три найважливіші з них – це контейнери, алгоритми та ітератори.
Контейнери – це спосіб організації збереження даних. Ми вже працювали з деякими контейнерами, наприклад, зі стеком, списком, чергою. Найпростішим контейнером є масив. Контейнери бувають найрізноманітніші і в STL вбудовані найкорисніші з них.
Під алгоритмами в STL розуміють процедури, що застосовуються до контейнерів для обробки їх даних у різні способи. Наприклад, є алгоритми сортування, копіювання, пошуку та об’єднання. Алгоритми представлені у STL у вигляді шаблонних класів, однак вони не є методами класів-контейнерів. Навпаки, це цілком незалежні функції. Однією з найпривабливіших рис STL є універсальність її алгоритмів. Їх можна використовувати не лише в об’єктах класів-контейнерів, а й у масивах і навіть у власних контейнерах. Тим не менше, контейнери містять і методи для розв’язку деяких специфічних задач.
Ітератори – це узагальнення концепції вказівників: вони посилаються на елементи контейнера. Їх можна інкрементувати як звичайні вказівники, і вони будуть послідовно посилатися на всі елементи контейнера. Ітератори – це ключова частина STL, оскільки вони зв’язують алгоритми з контейнерами. Їх можна уявляти собі у вигляді кабеля, що зв’язує комп’ютер з периферією.
На рисунку 10.1 показані три компоненти STL. Далі ми обговоримо їх детальніше.

Рисунок 15.1