Arkoa homepage
About Arkoa News & Events Contact Us Careers
  Course Catalog : C/C++ Programming :

C++ Standard Template Library (STL) Programming
3 days

Course # 02-0450


Description

This course provides a practical hands-on introduction to the C++ Standard Template Library (STL). Participants will learn the central concepts of the STL, with emphasis on its use to create reliable, scalable applications. Many advanced features are discussed.

Audience
Systems and applications programmers with substantial experience in the design and implementation of major software projects and an interest in using the STL.

Prerequisites
Participants must be fluent in C++ and have an understanding of object-oriented concepts

Hardware and Software
An ANSI C++ development environment with the STL and a compiler with template support, is required. An Internet connection is recommended. The systems must be able to load text files from a 3.5” DOS-formatted solution disk.

 

 


Format

Objectives
After completing this course, participants should be able to:

  • Use the STL to solve common programming problems
  • Explain the STL sequence and associative container classes and adapters, and list their advantages and relationships
  • Describe iterators, differentiating the different classes and explaining ranges and ordering properties
  • Use the STL generic algorithms to solve practical programming problems
  • Develop and use function objects and adapters
  • Design and implement efficient, reliable, readable, and maintainable programs using the STL.
  • Explain the STL performance guarantees
  • Use the STL reference material
  • Discuss methods to extend STL functionality




Topics


STL Introduction

  • STL Basic Concepts
    • STL and the Standard C Library
    • Container Basics and Overview
    • Iterator Basics
    • Algorithm Basics
    • The STL Namespace
  • C++ Template Review
    • Using Inline Functions (Instead of #define Macros)
    • Function Overloading
    • Function Templates
    • STL and Templates

Sequence Containers and Their Algorithms

  • Sequence Containers
    • Overview
    • Concepts and Requirements
    • Vectors and their Algorithms
    • Lists and their Algorithms
    • Deques and their Algorithms
    • Sequence Container Summary
  • Container Adapters
    • Overview
    • Stacks
    • Queues
    • Priority Queues
  • Interlude: STL Additional Information
    • Web Sites
    • Other References

Iterators, Allocators, and Algorithms

  • Iterators and their Conventions
    • Overview
    • Iterator Requirements
    • Using Iterators
  • Mutable Iterators
    • Iterator Orderings
    • Iterator Adapters
  • Algorithms, Ranges, and their Conventions
    • Ranges
    • Using Ranges with Algorithms
    • Stream Iterators
  • Allocators
    • Allocator Rationale
    • Allocator Types and their Usage

     

 


Associative Containers and their Algorithms

  • Associative Container Overview
    • Set, Multiset, Map and Multimap Introduction
    • Keys and Data
    • Ordering
    • Object Definitions for Set and Map Examples
  • Sets and Multisets
    • Set and Multiset Overview
    • Sets
    • Multisets
    • Set and Multiset Algorithms
  • Using Maps and Multimaps
    • Map and Multimap Overview
    • Maps
    • Multimaps
    • Associative Container Performance and Data Structures

Generic Algorithms and Function Objects

  • Function Objects and their Use
    • Function Object Concepts
    • Writing Function Objects
    • Unary and Binary Function Templates
    • Built-in Function Objects
  • STL Generic Algorithms
    • Generic Algorithm Concepts
    • Non-Mutating Sequence Algorithms
    • Mutating Sequence Algorithms
    • Sorting and Searching
    • Numeric Algorithms
    • Miscellaneous Algorithms
  • Function Adapters
    • Function Adapter Concepts
    • Negaters
    • Binders
    • Pointer to Function Adapters
    • Composition Adapters