The purpose of the course is to familiarize students with C++ advanced topics which are templates and Standard Template Library.

Learning objectives

  • To gain knowledge of C++ template mechanism,
  • To be able to read and understand definitions of template functions and classes,
  • To be able to use property template classes and methods including third party templates,
  • To know how to create template functions and classes
  • To gather good knowledge of C++ STL library including the IO part
  • To be able to solve common programming problems with STL predefined classes and methods


Chapters: Templates

  • What are templates?
  • Basic syntax
  • Function templates
  • Class templates
  • When should we use them?
  • Typical problems when using templates

STL Sequential containers

  • Types of sequential containers
  • vector, deque, list and their API
  • Sequential container adapters – stack, queue and priority queue
  • Dealing with objects as container elements
  • Usage guidelines – when to use what

STL Associative containers

  • Types of associative containers
  • set and multiset – behavior and API
  • map and multimap – behavior and API
  • Putting objects into set and map
  • Usage guidelines – when to use what

Non modifying STL algorithms

  • Definition of non modifying algorithm
  • List of non modifying algorithms: for_each, find, find_if, find_end, find_first_of, adjacent_find, count, count_if, mismatch, equal,search, search_n
  • Examples
  • Container compatibility

Modifying STL algorithms

  • Definition of modifying algorithm
  • List of non modifying algorithms: transform, copy, copy_backward, swap, swap_ranges, iter_swap, replace, fill, fill_n, generate, generate_n, remove, remove_if, unique, unique_copy, reverse, reverse_copy, rotate,  partition, stable_partition
  • Examples
  • Container compatibility

Sorting STL operations

  • List of sorting algorithms: random_shuffle, sort, stable_partition, lower_bound, upper_bound, equal_range, binary_search
  • Examples
  • Containers compatibility
  • Sorting of objects

STL merge operations

  • List of merging algorithms: merge, includes, min_element, max_element, inplace_merge
  • STL operations for sets
  • Examples
  • Container compatibility

STL utilities and functional library

  • STL “small” tools
  • List of useful functors
  • Examples

STL advanced I/O

  • Classes which provide the input and output capability
  • Console I/O
  • Formatting
  • File I/O
  • Strings I/O
  • Examples

Duration : 5 Days

Prerequisite Courses

The Student should have good knowledge of the C++ language including inheritance and operator overloading – recommended completed C++ language course at the associate level.



  •   91-95007 10004


  •  91-95432 18687