Standard template library

from Wikipedia, the free encyclopedia

As a Standard Template Library ( STL ) different in the programming language C ++ written libraries referred.

Originally, the Standard Template Library was a C ++ library developed by Hewlett-Packard ( HP for short ) in the 1980s , which was largely based on generic programming with a focus on data structures and algorithms . This library significantly influenced the so-called C ++ standard library , which is now an integral part of the C ++ programming language.


The STL developed by HP goes back to very old roots. As early as 1971 there were the first drafts of generic libraries by Dave Musser. In 1979 , Alexander Stepanov began developing his ideas in this field. However, it was not implemented in a major programming language until 1987 with the Ada programming language .

Stepanow and Meng Lee , then employees at Hewlett-Packard, called the program library they developed STL . This library later became public domain . Then, in 1993 , at a time when C ++ was still in the early stages of development, they presented the library to the C ++ standardization committee, which over time worked out a concrete proposal for inclusion in the C ++ programming language, which ultimately led to Integration led.

Stepanow later switched to Silicon Graphics ( SGI for short ) and then continued working on his library.

Reference to the C ++ standard library

A large part of today's C ++ standard library comes from the STL in its version developed by HP at the 1993 status, but it differs from it in various details. For this reason it is not possible to name a subset of the C ++ standard library as STL . The version of the STL at that time also contained neither character strings nor input / output data streams. The term STL does not appear in the C ++ standard .

Various libraries called STL

Unofficially, the name STL is widely used. However, the different ideas about the meaning of this term sometimes lead to misunderstandings. At SGI, for example, “STL” means the library published there, which in turn differs greatly from the version developed at HP.

There is no library called STL as defined by national or international standards . The ideas of the STL were first included in the then C ++ 98 standard in the C ++ Standard Library in 1998 and have been steadily increasing since then (C ++ 03, C ++ 11, C ++ 14, C ++ 17, C ++ 20) further developed.

The following libraries that are independent of the C ++ standard library are called STL or have the component STL in their name:

  • the original STL library developed by HP (development discontinued)
  • the STL maintained by Silicon Graphics ; greatly expanded compared to the HP-STL; contains more or less the C ++ standard library with the exception of the libraries inherited from C; In addition, extensions such as hash maps , which were not adopted in the standard, and ropea data type for more efficient processing of very long strings (development discontinued)
  • the free library STLport ; was for a while a kind of alternative to the C ++ standard library
  • a .NET library called STL / CLI ; was developed to take advantage of the language extensions introduced with C ++ / CLI ; cannot be compiled with standard C ++ compilers

Web links