Programming in C ++ Language – Professional Level

Course code:CPPL01


Duration: 5 Days / 40 Hours

This course instructs on C ++ advanced topics like templates and Standard Template Library. The main learning objectives are: gain a knowledge of the C++ template mechanism; develop the ability to read and understand the definitions of template functions and classes; develop the ability to use property template classes and methods, including third party templates; learn how to create template functions and classes; gather a good knowledge of the C++ STL library, including the IO part; and develop the ability to solve common programming problems with STL predefined classes and methods. We have aligned this training to the CPP certification (C ++ Certified Professional Programmer) provided by C++ Institute.(www.cppinstitute.org)

Audience

Those who have a need to learn and apply basic level C ++ programming techniques.

Prerequisites

The Student should have a good knowledge of the C++ language, including inheritance and operator overloading. The student must complete the C++ language course at the associate level (CPA) prior to signing up for the CPP course.

Objective

The main learning objectives are:

  • Gain a knowledge of the C++ template mechanism; develop the ability to read and understand the definitions of template functions and classes;
  • Develop the ability to use property template classes and methods, including third party templates;
  • Learn how to create template functions and classes;
  • Gather a good knowledge of the C++ STL library, including the IO part; and develop the ability to solve common programming problems with STL predefined classes and methods.

Education Criteria

None

1. Using Templates

  • What are templates
  • Basic syntax
  • Function templates
  • Class templates
  • When to use templates
  • Typical problems when using templates

2. 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 – when to use what.

3. 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 – when to use what.

4. Non-modifying STL algorithms

  • Definition of a 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

5. Modifying STL algorithms

  • Definition of a modifying algorithm
  • List of 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

6. Sorting STL operations

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

7. 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

8. STL utilities and functional library

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

9. STL advanced I/O

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

Course Review

Exam Preparation