US / UK-EMEA / Contact Ask DevelopMentor a Question800.699.1932

Concepts and Architecture of the STL

(FW443) 1 Day Course, $995
 
Upcoming Classes:

What You Will Learn

Course Highlights

Course Details

Dates & Locations

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.


This seminar illuminates the architecture that underlies the STL: its fundamental concepts, components, and how they relate to one another. The class also offers specific guidelines explaining how to make effective use of the STL and its architecture.

What You Will Learn

Course Highlights

Course Details

Dates & Locations

Participants will gain:
  • An understanding of the architecture behind the STL, including its core components and concepts.
  • Usage guidelines that explain how to avoid subtle STL correctness and performance traps.
  • An understanding of the applications and limitations of STL allocators.

Format: Lecture and question/answer. There are no hands-on exercises, but participants are welcome to use their computers to experiment with the course material as it is presented.

What You Will Learn

Course Highlights

Course Details

Dates & Locations

  • Preface: TR1 and Boost
  • 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"
  • Standard STL Containers:
    • Sequence vs. associative containers
    • Contiguous-memory vs. node-based containers
    • Variations in string implementations
  • The Behavior of remove:
    • remove and containers of pointers
  • Equality vs. Equivalence
  • Algorithm Calls vs. Hand-Written Loops:
    • Efficiency
    • Correctness
    • Comprehensibility
    • Pragmatic considerations
  • Inheritance vs. Templates:
    • Explicit vs. implicit interfaces
    • Runtime vs. compile-time polymorphism
  • 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
  • Sources for Additional Information

What You Will Learn

Course Highlights

Course Details

Dates & Locations

Upcoming Dates & Locations

There are no upcoming scheduled engagments of this course. We can schedule an on-site event at your convenience.
Ready?
Connect
Signup for our Free Newsletter!
Latest news
Twitter Feed MORE
Got an email from a developer in Holland about my Onion Architecture blog post http://t.co/Z5DTvJob Nice to have a worldwide audience! #dm
1 day ago (details)
There is something to this statement: Why Quit? Because They Have Bigger Monitors http://t.co/9FrGETG5 #dm (via @mkennedy)
2 days ago (details)
Testimonials
  • Richard Blewett is knowledgeable and interesting to listen to. Dyland T.