Toll Free: 800-735-7418
Local: 303-377-9333
info@hartmannsoftware.com
 
 

 
The C++ Standard Template Library

Course Description  
The C++ Standard Template Library is a large part of the C++ Standard Library. STL consists of three major components: data structures, algorithms and iterators. Every data structure you are likely to want is available, including familiar containers such as array, list, deque, stack, queue, set and others. Also available are a plethora of algorithms, such as sort(), search(), merge(), find() and others. The third major component of STL, iterators, link the algorithms to the data structures. Iterators are a generalization of pointers, and are designed for efficient traversal through the data structures.
The course consists of two modules. The first module, Fundamentals of STL, begins with an overview of C++ templates. If your students are already familiar with templates, this chapter can be covered briefly as a review. Otherwise, it should be covered thoroughly, including the exercises at the end of the chapter. The second chapter gives an overview of STL, including its history and evolution. It also surveys the major features of STL. There is no lab for this chapter, which is intended to provide an orientation to the whole subject, not the details. Chapter 3 contains a large number of simple examples illustrating the main features of STL. It could be called "a tour of STL." At this point students should already have a reasonable working knowledge of the subject. The rest of the course elaborates on the individual features. Chapter 4 covers STL containers, and Chapter 5 covers STL iterators.
The second module, Intermediate STL, covers the remaining features of STL. Chapter 1 introduces function objects, which are objects of any class that overloads the function call operator, operator(). Most STL algorithms accept a function object as a parameter, allowing the programmer to vary the way an algorithm works. Chapter 2 covers STL algorithms. The third chapter discusses container adaptors, which are STL components that can be used to change the interface of another component. They support the creation of STL classes such as stack and queue from lower-level components such as vector and list. The course concludes with an introduction to allocators, which are used by STL to encapsulates memory model information.
Course Length: 3 Days
Course Tuition: $1190 (US)
Prerequisites
C++ Programming
Course Outline  

• Module 3. Fundamentals of STL

•  An Overview of Templates
Templates
Overloading functions
Template functions
Specializing a template function
Disambiguation under specialization
Template classes
An array template class
Instantiating a template class object
Rules for templates
Non member function with a template argument
Friends of template classes
Templates with multiple type parameters
Non type parameters for template classes
Comments regarding templates

•  Overview of the Standard Template Library
Perspective
History and evolution
New features in C++
The Standard Template Library
Design goals
Header files
STL components
Containers
Algorithms
Iterators

•  Examples from STL
Example: vectors, lists
Example: maps
Example: sets
Example: multiset
Example: find with a vector
Example: find with a list
Example: merge
Iterators
Function objects
Adaptors

•  STL Containers
Vector
Deque
List
The beauty of STL
Associative Containers
Set
Multiset
Map
Multimap

•  STL Iterators
Input iterators
Output iterators
Forward iterators
Backward iterators
• Module 2. Intermediate STL

•  Function Objects
Function objects vs. function pointers
Predicate function objects
Comparison function objects
Numeric function objects
Programmer supplied function objects
Built-in function objects

•  STL Algorithms
Non-Mutating sequence algorithms
Mutating sequence algorithms
Sorting and searching algorithms
Numeric algorithms
General

•  Container Adaptors
Wrapper classes
Stack container adaptors
Queue container adaptors
Priority_Queue container adaptors

•  Allocators
Rationale
Default Allocator
Custom Allocators
Container Storage Allocation

Contact us for course schedules or more information.
 

Registration and Pricing
The Virtual Classroom
Mentoring Services


Fresh Off The Press MySQL Admin/Dev
Sharepoint for Developers
Advanced XML
Securing Java Web Services
Exploring Design Patterns
Fast Track to Java EE
Ajax using C# (VS 2008) Oracle 11G New Features Complete LINQ