Get familiar with the C++ Standard Library, key conventions, source examples, and C++11 enhancements.
2.
The Standard Library
3 Lessons
Look at the evolution of the C++ Standard Library, key utility libraries, and STL components.
Examine C++ libraries for numeric functions, text processing, I/O, filesystems, and multithreading.
4.
Application of Libraries
4 Lessons
Enhance your skills in utilizing C++ libraries, from including headers to managing namespaces and building executables.
Dig deeper into versatile tools in the C++ Standard Library for efficient data management.
6.
Useful Functions
4 Lessons
Investigate versatile functions like min, max, move, forward, and swap in C++.
The min, max and minmax functionsMove vs. CopyForwardSwap7.
Adaptors for Functions
2 Lessons
Master how to use std::bind and std::function for efficient functional programming.
std::bind and std::functionBehavior of std::bind and std::function8.
Pairs and Tuples
2 Lessons
Learn how to use pairs and tuples for effective data grouping and manipulation in C++.
PairsTuples9.
Reference Wrappers
2 Lessons
Walk through using reference wrappers to enable flexible object copying and callable encapsulation in C++.
Introductionstd::ref and std::crefExamine how smart pointers improve memory management, including unique, shared, and weak pointers.
IntroductionUnique PointersShared PointersWeak PointersCyclic ReferencesGrasp the fundamentals of C++ type traits, compile-time checks, and type modifications for optimized programming.
IntroductionCheck Type InformationType Comparisons and ModificationsTake a look at C++'s time library enhancing multithreading with time point, duration, and clocks.
IntroductionTime PointTime DurationClock13.
std::any, std::optional, and std::variant
3 Lessons
Follow the process of utilizing std::any, std::optional, and std::variant for type-safe, flexible data handling.
std::anystd::optionalstd::variant14.
Interface of All Containers
6 Lessons
Build on the fundamental operations and functionalities of sequential and associative containers.
IntroductionCreate and DeleteSizeAccessAssign and SwapCompare15.
Sequential Containers
6 Lessons
Learn how to use sequential containers in C++ for various data management needs.
IntroductionArraysVectorsDequesListsForward Lists16.
Associative Containers
2 Lessons
Look at C++'s versatile associative containers for efficient key-based data retrieval.
IntroductionInsertion and Deletion17.
Ordered Associative Containers
5 Lessons
Break apart the intricacies of ordered associative containers, their keys, values, and efficient search functions.
OverviewKeys and ValuesThe Comparison CriterionSpecial Search FunctionsMaps18.
Unordered Associative Containers
5 Lessons
Break down the steps to effectively use unordered associative containers in C++ for better performance.
OverviewKeys and ValuesPerformanceThe Hash FunctionThe Details19.
Adaptors for Containers
4 Lessons
Take a closer look at C++ container adaptors: stack, queue, and priority queue.
IntroductionStackQueuePriority QueueFollow the process of using C++ iterators for efficient container traversal and manipulation.
IntroductionCategoriesIterator CreationUseful FunctionsAdaptorsPiece together the parts of callable units like functions, function objects, and lambda functions.
IntroductionFunctions and Function ObjectsLambda FunctionsTry out C++ algorithms, iterators, and execution policies for enhanced performance.
IntroductionConventionsIterators are the glueSequential, parallel, or parallel execution with vectorisationAlgorithms with Parallelized Versionsfor_each23.
Non-Modifying Algorithms
6 Lessons
Unpack the core of non-modifying algorithms in C++, covering searching, counting, checks, and comparisons.
IntroductionSearch ElementsCount ElementsCheck Conditions on RangesCompare RangesSearch for Ranges within Ranges24.
Modifying Algorithms
11 Lessons
Work your way through various C++ algorithms for modifying, moving, transforming, and managing ranges effectively.
Copy Elements and RangesReplace Elements and RangesRemove Elements and RangesFill and Create RangesMove RangesSwap RangesTransform RangesReverse RangesRotate RangesRandomly Shuffle RangesRemove DuplicatesGrasp the fundamentals of advanced C++ algorithms, including partitioning, sorting, and numeric operations.
PartitionSortBinary SearchMerge OperationsHeapsMin and MaxPermutationsNumeric26.
New Algorithms with C++17
2 Lessons
Take a closer look at new C++17 parallel execution algorithms like `reduce` and prefix sums.
ReduceScanFocus on random number generation and inherited numeric functions in C++.
Random NumbersFunctions Inherited from CBuild on C++ string fundamentals, operations, conversions, and advanced manipulation techniques.
IntroductionCreate and DeleteConversion Between C++ and C StringsSize versus CapacityComparison and ConcatenationElement AccessInput and OutputSearchModifying OperationsNumeric ConversionsGet familiar with handling string views for efficient, non-owning string manipulations in C++.
IntroductionCreate and initialiseNon-modifying operationsModifying operations30.
Regular Expressions
9 Lessons
Discover the logic behind using C++ regular expressions for text pattern matching, searching, and replacing.
IntroductionCharacter TypesRegular Expression ObjectsThe Search ResultMatchSearchReplaceFormatRepeated Search31.
Input and Output Streams
9 Lessons
Work your way through C++ input, output, file, and string stream operations and management.
IntroductionString StreamsFile StreamsState of the StreamUser-defined Data TypesHierarchyIostreamInput and Output FunctionsFormat SpecifierBreak down the steps to manage files and directories using C++ filesystem utilities.
Filesystem libraryClassesNon-member functionsFile typesTake a look at C++ multithreading basics, memory model, atomic data, threads, and synchronization.
Memory ModelAtomic Data TypesThreadsShared VariablesThread Local DataCondition VariablesTasks