Як вже було сказано, контейнери являють собою різноманітні структури для збереження даних. При цьому неістотно, які саме дані зберігаються: базові типи int, float, char, чи об’єкти класів. STL включає в себе 7 основних типів контейнерів і ще три похідні типи. Навіщо нам стільки контейнерів і чому не можна обійтися масивом у всіх випадках, коли потрібно зберігати дані? Відповідь така: це неефективно. Працювати з масивом у багатьох випадках і складно, і занадто довго.
Контейнери STL поділяються на два типи: послідовні та асоціативні. Серед послідовних виділяють: вектори, списки, черги з двостороннім доступом. Серед асоціативних - множини, мультимножини, відображення, мультивідображення. Крім того, спадкоємцями послідовних виступають ще кілька спеціалізованих контейнерів: стек, черга, пріоритетна черга.