C++ Level 2 – An Odyssey of C++: Standard Library
Request more information
Lena Bernhardsson – SE, DK, NO
+46 (0) 40 59 22 09
lena.bernhardsson@nohau.se
Heidi Lehtomäki – Finland
phone: +358 40 196 0142
heidi.lehtomaki@nohau.fi
Overview:
A two days C++ training – the successor of “An Odyssey of C++: Part 1- Core Language” – with the following objectives:
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 forthcoming 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 “An Odyssey of C++: Part 1- 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.
Outline:
7. Standard Library 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