TTE9755: Advanced C++ Programming and the Standard Template Library (STL)

$2,595.00


  • Virtual Classroom

  • Onsite
Duration: 4 Days

The C++ Standard Template Library (STL) is a general-purpose library of generic algorithms and data structures. This course is an intermediate-to-advanced level, hands-on programming course that thoroughly explores all of the STL components. Its purpose is to make a programming task much easier by providing extensive components that can be combined in an application. It also provides a framework into which different programming problems can be dissected.

What You Will Learn

 

  • Overview of C++ and the STL
  • Data structures of the STL
  • Containers, iterators, and algorithms
  • Connecting algorithms to containers using STL iterators
  • Principles of generic programming

Audience

 

  • Experienced C++ programmers who desire higher-level technical detail
  • Anyone desiring the ability to read and understand complex C++ programs for maintenance or learning purposes

Prerequistes

 

  • A three-month minimum of practical programming experience in C++
  • Prior experience with the compiler used in the lab is helpful but not required
  • Skills or training equivalent to these courses:

Course Outline

 

1. Brief: Overview of C++

  • Overview of STL Components
  • Containers
  • Generic Algorithms
  • Iterators
  • Function Objects

2. Iterators

  • Input Iterators
  • Output Iterators
  • Forward Iterators
  • Bi-directional Iterators
  • Random Access Iterators
  • Constant Versus Mutable Iterator Types
  • Iterator Categories Provided by STL Containers

3. Generic Algorithms

  • Sorting-Related Algorithms

4. Sequence Containers

  • Vectors
  • Deques
  • Lists

5. Function Objects

  • What are Function Objects?
  • How Function Objects Differ from Function Pointers
  • STL-Provided Function Objects

Course Labs

 

This course comprises about 50% hands-on lab and 50% lecture, with extensive programming exercises that are designed to reinforce skills and concepts learned in the course. Our courses include ample materials and labs to ensure that you are either appropriately challenged or assisted at all times - regardless of skill level. You are invited to bring your ideas and questions to the classroom for discussion. Lecture, group problem-solving, and online laboratories will be used in class. You are encouraged to enhance your skills by using the techniques presented through classroom problem-solving and controlled online workshops.