Home arrow C++ arrow Page 2 - The Standard Template Library
C++

The Standard Template Library


STL stands for Standard Template Library. It has been one of the most important parts of the standard library since 1999. bringing the most crucial improvements to the C++ language. It redefined the way we perceive data structures and the way we are coding right now. If you've just learned the basics of C++, then this is definitely an article that will help you gather more knowledge and progress.

Author Info:
By: Gabor Bernat
Rating: 5 stars5 stars5 stars5 stars5 stars / 7
June 24, 2008
TABLE OF CONTENTS:
  1. · The Standard Template Library
  2. · History Class
  3. · Looking Inside the Library
  4. · Iterators

print this article
SEARCH DEVARTICLES

The Standard Template Library - History Class
(Page 2 of 4 )

Before we start with the theory, I invite you to read some interesting information about the creation of the STL. The “father” of the STL can be considered to be Alexander Stepanov. He was born on November 16, 1950 in Moscow and studied Mathematics at Moscow State University. However, he felt like mathematics wasn’t meant for him and changed his career to become a programmer. His good mathematical knowledge came in handy later on while writing the STL library.

Throughout his career, Stepanov worked for Bell Labs where he developed a close connection with Andrew Koenig and Bjarne Stroustrup (the father of C++). He tried to convince Bjarne to add something like ADA generics to C++. Later on in 1993, he worked at HP Labs where he completed the STL. Right now he is employed by Adobe Systems.

Alexander had this to say about the creation of the STL in an interview at the STLport site:

In 1976, still back in the USSR, I got a very serious case of food poisoning from eating raw fish. While in the hospital, in the state of delirium, I suddenly realized that the ability to add numbers in parallel depends on the fact that addition is associative. (So, putting it simply, STL is the result of a bacterial infection.) In other words, I realized that a parallel reduction algorithm is associated with a semi group structure type. That is the fundamental point: algorithms are defined on algebraic structures. It took me another couple of years to realize that you have to extend the notion of structure by adding complexity requirements to regular axioms. And than it took 15 years to make it work. (I am still not sure that I have been successful in getting the point across to anybody outside the small circle of my friends.) I believe that iterator theories are as central to Computer Science as theories of rings or Banach spaces are central to Mathematics. Every time I would look at an algorithm I would try to find a structure on which it is defined. So what I wanted to do was to describe algorithms generically. That's what I like to do. I can spend a month working on a well known algorithm trying to find its generic representation. So far, I have been singularly unsuccessful in explaining to people that this is an important activity. But, somehow, the result of the activity - STL - became quite successful.


blog comments powered by Disqus
C++ ARTICLES

- Intel Threading Building Blocks
- Threading Building Blocks with C++
- Video Memory Programming in Text Mode
- More Tricks to Gain Speed in Programming Con...
- Easy and Efficient Programming for Contests
- Preparing For Programming Contests
- Programming Contests: Why Bother?
- Polymorphism in C++
- Overview of Virtual Functions
- Inheritance in C++
- Extending the Basic Streams in C++
- Using Stringstreams in C++
- Custom Stream Manipulation in C++
- General Stream Manipulation in C++
- Serialize Your Class into Streams in C++

Watch our Tech Videos 
Dev Articles Forums 
 RSS  Articles
 RSS  Forums
 RSS  All Feeds
Write For Us 
Weekly Newsletter
 
Developer Updates  
Free Website Content 
Contact Us 
Site Map 
Privacy Policy 
Support 

Developer Shed Affiliates

 




© 2003-2017 by Developer Shed. All rights reserved. DS Cluster - Follow our Sitemap
Popular Web Development Topics
All Web Development Tutorials