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:
-
Advanced C++ Programming
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
-
Templates
Function Templates
Class Templates
Function Objects
-
Vector
Stack
Queue
Double ended queue
-
What are iterators
Types of iterators
Using iterators
Const iterators
Random iterators
-
List
Set
Map
Multimap
-
Plug-in algorithms
Aggregation algorithms
Iterative algorithms
Searching algorithms
Sorting algorithms
-
Writing containers
Writing iterators
Creating plug-in algorithms
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.