Each compiler uses a different implementation.
For example, gcc uses libstdc++, clang uses either that or libc++ and Visual C++ uses a version based on theDinkumware implementation. All of these use the same interface (ie. if your code conforms to the standard, it should work and give the same results on all implementations), but they are usually not binary compatible (ie. astd::string
from a shared library linked with libstdc++ will usually break when used by a VC++ executable).
The original STL was developed by Alexander Stepanov in the late 80s and early 90s, first at HP and later at SGI. The parts of the C++ standard library commonly referred today to as STL are based on that work, but they are technically different libraries.