This site is currently, but slowly, undergoing an update to reflect C++11 enhancements. Initially the new algorithms are being added to the alphabetical listing of all algorithms.

This STL reference site is primarily meant for university students studying C++ and using the STL, possibly for the first time. A large number of sample programs is (are?) already available, including many illustrating the member functions in the interface of each container and container adaptor, and at least one sample program illustrating every STL algorithm, as well as the alternate versions of those algorithms that have one. More sample programs will be added as time goes on. It is hoped that eventually there will be at least one sample program illustrating most anything a typical non-guru STL programmer might encounter in reading C++ code, or want to use in his or her own programs. Sample programs are generally available in three forms: source code, Windows executables (if you trust me enough to run them), and text output (from the executables, if you don't trust me enough to run them). The text output is exact if the program does not have user input, and typical if it is does.

Each completed or partially complete page is designed to provide information on a particular aspect of the C++ Standard Template Library. With a topic as complex, as versatile, as powerful, and as likely to be enhanced over time as the STL, it is often useful to have the same information presented in several different ways—algorithms in alphabetical order, to be sure, but also algorithms grouped by purpose, for example. This redundancy, and others, will be observed on this site and, with luck, will be found useful.


This site is likely never to be finished to the author's satisfaction, and so is best regarded as a perpetual work-in-progress. There may be short or long periods of time during which nothing happens on the site, depending on the time and other constraints on the author. If you find anything on the site particularly useful, or if you can think of a way to make it more useful, or if you find an error or some other problem, either trivial or egregious, the author would appreciate hearing from you (porter.scobey@smu.ca).