C++ STL (Standardowa Biblioteka Szablonów) jest ogólną biblioteką szablonów klas i algorytmów, pozwalającą programistom łatwo wdrożyć standardowe struktury danych, takie jak kolejki, listy oraz stosy.
C++ STL udostępnia dwa rodzaje kontenerów:
Dodatkowo, standardowa biblioteka C++ udostępnia kilka kontenerów nie-STL'owych.
Mogą one być uważane za kontenery ale nie spełniają wszystkich wymagań kontenerów STL'owych
Idea kryjąca się za powstaniem biblioteki STL polegała na stworzeniu największej
części złożonych struktur danych. Jeżeli programista będzie chciał użyć
stosu liczb całkowitych (INT) to wystarczy użyć tego fragmentu kodu:
stack<int> myStack;
Z minimalnym wysiłkiem można teraz użyć metod push (wsadź) oraz pop (pobierz) do wstawania i pobierania zmiennych ze stosu. Wykorzystując magię szablonów C++ (C++ Templates), można zdefiniować dowolny typ zmiennych, nie tylko całkowity (INT). Clasa Stack (stos) udostępni podstawową funkcjonalność na stosie w zależności od danych tam zawartych.
STL dostarcza garść użytecznych algorytmów -- takich jak:
które mogą być użyte na wielu kontenerach lub strukturach danych.
Iteratory udostępniają podstawowy sposób do iterowania się po kontenerach i innych strukturach danych
Plik nagłówkowy <functional> definiuje objekty funkcyjne i adaptery funkcji.
Plik nagłówkowy <memory> udostępnia proste struktury zarządzania pamięcią takie jak inteligentne wskaźniki.