La bibliothèque STL est principalement un ensemble d'objets et de méthodes standards pour C++. La norme ANSI/ISO précise les fonctionnalités de ces différents objets, mais pas la façon concrète dont ceux-ci doivent être implémentés. Pour cette raison, il existe de nombreuses bibliothèques STL différentes. Elles fournissent toutes un support des objets et algorithmes définis comme standards, et apportent pour la plupart un certain nombre d'extensions qui ne sont, à l'heure actuelle, pas reconnus comme standards par la norme. Cette multiplicité d'implémentations est similaire à celle qui existe au niveau des compilateurs.
Du point de vue des licences, la norme elle-même n'est soumise à aucun copyright, et tout le monde est donc libre de développer sa propre implémentation de la bibliothèque STL. Par contre, l'implémentation elle-même de la bibliothèque peut être ou non soumise à une licence, éventuellement propriétaire.
L'une des implémentations les plus diffusées de la bibliothèque STL a été développée historiquement par Hewlett-Packard, puis par Silicon Graphics. Cette implémentation est « libre de droit », sous copyright, c'est-à-dire que l'on peut la copier, la distribuer et la modifier, mais que l'on ne peut pas se réclamer en être l'auteur.
Il existe aussi une implémentation de la STL en licence GNU. Dans les différentes distributions Linux, elle est incluse dans le paquet libstdc++.
// Met dans le vecteur v1 la seconde moitié du vecteur v2 v1.assign(v2.begin() + v2.size() / 2, v2.end()); // Applique la fonction test à chaque membre de v1 for_each(v1.begin(), v1.end(), test);