The C++ Standard Template Library
Current Version: 1.0a
Summary
The C++ Standard Template Library (STL) is a set of powerful tools which can
dramatically increase productivity and software reliability.  This course
teaches the C++ programmer how to make effective use of the STL, by
describing the tools that are available and their abilities, and giving tips
and examples on how to incorporate them into programs and projects.
Aditionally, students are taught how to design new STL-like tools for
situations where existing components are inadequate.
Prerequisites
A sound knowledge of C++ is essential, including familiarity with templates
and operator overloading.  A reasonably comprehensive C++ course should be a
provide sufficient background, providing the student has previous programming
experience.
Course Objectives
On completion of this course, the student should be able to
Describe the components of the STL
Outline the advantages of template-based programming
Select appropriate STL tools
Effectively use STL containers, iterators and algorithms
Design and implement new containers, iterators and algorithms
Intended Audience
This course may prove useful to the people such as:
Experienced C++ programmers familiar with older C++ systems without STL
Programmers learning C++, who have completed training in the main features of the language
Next Steps
Further knowledge and experience of C++ programming can be gained by studying:
Length
3 Days
Format
Instructor-led course, with practical computer-based exercises.
Course Outline
Introduction
 
 What is the STL
 History of the STL
 Disadvantages of traditional C/C++
 How STL solves common C/C++ problems
 
Review
 Templates
 Function Templates
 Class Templates
 Function Objects
 
Containers Part 1
 Vector
 Stack
 Queue
 Double ended queue
 
Iterators
 What are iterators
 Types of iterators
 Using iterators
 Const iterators
 Random iterators
 
Containers Part 2
 
Algorithms
 Plug-in algorithms
 Aggregation algorithms
 Iterative algorithms
 Searching algorithms
 Sorting algorithms
 
Writing STL Add-ons
 Writing containers
 Writing iterators
 Creating plug-in algorithms
 
STL compatibility and availability
 
Hardware and Software Requirements
Any machine with a C++ compiler that has a robust STL implmentation, such as
the GNU g++ compiler or recent Visual C++ versions.  Integrated development environment preferable.