top of page

C++ Level 2 – An Odyssey of C++: Standard Library

Price

Inquiry

Duration

2 Days

C++ Level 2 – An Odyssey of C++: Standard Library

Overview:

This two days C++ elementary continuation course dives into the powerful features of the C++ Standard Library. Explore string abstractions, including regular expressions, and master I/O streams for efficient data handling. Get a complete overview of container types, algorithms with iterators and ranges, and modern memory management using smart pointers. Enhance your C++ skills by learning to reuse the rich APIs of the C++ Standard Library!


Goal/Benefits:

The major objective of this course is to get an overview of what the standard library of “Modern C++” – aka C++11, C++14, C++17, C++20, and the latest released C++23 – offers, so that “no new wheels have to be invented.

♦ String management

♦ Basic input/output - Making the user-defined type readable and writeable by understanding the concepts of the iostream-API

♦ Comprehend the different kinds of sequential and associative container classes

♦ Understand concept of iterators wiring the collections with the algorithms

♦ Understand concept of predicate function for controlling the behavior of an algorithm

♦ Understand the importance of sound memory management by always using smart pointers when applicable

♦ A set of exercises practicing the concepts

♦ Applying a unit testing as a natural way of testing/evaluating/running most of the exercises – in line with the predecessor course “C++ Level 1”


Audience/Participants:

This training is aimed programmers with some working experience of C++.


Previous Knowledge:

Since this class is the continuation of course “C++ Level 1 - An Odyssey of C++: Core Language”, a basic knowledge of C++ is required.


Practical Exercises:

During the training you will practice the presented concepts in a few exercises. We will use the open and free integrated development environment from Eclipse.


Course outline:

Numbering continued from the predecessor course “C++ Level 1”

7. Overview

♦ Standard-Library Components

♦ Standard-Library Headers


8. Strings and Regular Expressions

♦ Strings

• std::string and std::string_view

♦ Numeric Conversions

♦ Regular Expressions – Overview

• std::regex


9. I/O Streams

♦ Output

♦ Input

♦ File Streams

♦ Stream Manipulators

♦ String Streams

♦ User-defined Output/Input


10. Containers

♦ Overview of all container classes, e.g.:

• std::vector

• std::list

• std::map

• std::unordered_map

• std::array

♦ Complexity - Big O notation


11. Algorithms

♦ Iterators – Wiring into the Arrays and Containers

♦ Algorithm Overview

♦ Using lambdas as predicate functions


12. Utilities

♦ Resource Management with smart pointers

• std::unique_ptr

• std::shared_ptr

• std::weak_ptr

♦ Delivering Result

• std::expected

Harald Lüning

Course leader for "Test-Driven Development and Unit Testing" and C/C++ courses:
Harald Lüning is one of our top course leaders, and has extensive practical and theoretical experience in C/C++ programming, object-oriented system development, and test-driven development"
Olavi is an Electrical engineer who has been programming since 1977. Olavi specializes in embedded systems and has previously worked in medtech, networks, and secure systems for the transportation industry.

Harald Lüning
bottom of page