Live Chat
Monday - Friday 8am - 6pm EST Chat Now
Contact Us
Monday - Friday 8am - 8pm EST 1-866-716-6688 Other Contact Options

Cart () Loading...

    • Quantity:
    • Delivery:
    • Dates:
    • Location:


Concepts and Architecture of the STL

GK# 3352


Course Overview


C++'s Standard Template Library (STL) is uniquely powerful and extensible, and it facilitates the creation of very efficient code. However, the design behind the STL is unconventional and can be counterintuitive. Developers who fail to grasp the design often produce software that looks reasonable, but that's actually brittle, inefficient, and home to subtle bugs.

In this course, you will learn about the architecture that underlies the STL, including its fundamental concepts, components, and how they relate to one another. You will learn specific guidelines for making effective use of the STL and its architecture.

Note: You are required to bring your own laptop.


  • Delivery Format:
  • Date:
  • Location:
  • Access Period:



Viewing outline for:

Virtual Classroom Live Outline

1. Preface: TR1 and Boost

2. The Architecture of the STL

  • Arrays and pointers, half-open ranges
  • Generalizing pointers to iterators
  • Generalizing arrays to sequences
  • Algorithms
  • Conventions and extensibility
  • Function objects
  • Meanings of "The STL"

3. Standard STL Containers

  • Sequence vs. associative containers
  • Contiguous-memory vs. node-based containers
  • Variations in string implementations

4. The Behavior of remove

  • Remove and containers of pointers

5. Equality vs. Equivalence

6. Algorithm Calls vs. Hand-Written Loops

  • Efficiency
  • Correctness
  • Comprehensibility
  • Pragmatic considerations

7. Inheritance vs. Templates

  • Explicit vs. implicit interfaces
  • Runtime vs. compile-time polymorphism

8. Allocators

  • Original goals and ultimate limitations
  • Allocators vs. operators new/new[]/delete/delete[]
  • Node-based containers and rebind
  • Legitimate uses of allocators
  • A shared-memory allocator
  • A complete sample allocator

9. Sources for Additional Information

Who Should Attend


Anybody working with C++, regardless of whether they are a systems designer, programmer, or technical manager

Course Delivery

This course is available in the following formats:

Virtual Classroom Live

Experience expert-led online training from the convenience of your home, office or anywhere with an internet connection.

Duration: 1 day

Request this course in a different delivery format.