Any addition to my Roadmap.
C++ PROGRAMMING
Topics
GENERAL
ALGORITHMS AND DATA STRUCTURES
Data structures
- Arrays and Vectors
- Linked Lists
- Stacks and Queues
- Trees (BST, AVL, Red-Black)
- Graphs
- Hash Tables
- Heaps
Algorithms
- Sorting
- Searching
- Graph Algorithms
- Dynamic Programming
- Greedy Algorithms
CODE QUALITY
Core principles
- SOLID Principles
- DRY, KISS, YAGNI
Design Patterns
- Creational
- Structural
- Behavioral
Clean Code
- Naming Conventions
- Code Organization
Tools
- Linters
- Static Analyzers
- Profilers
C++ CORE
BASIC SYNTAX
Variables and Constants
Data Types
Operators
Comments
Input/Output (cin, cout)
Namespaces
CONTROL FLOW
Conditional Statements
- if, else if, else
- switch-case
Loops
- for, while, do-while
- Range-based for loop
Jump Statements
- break, continue, return
- goto
FUNCTIONS
Function Declaration
Function Definition
Function Overloading
Default Arguments
Inline Functions
Recursion
Function Pointers
Lambda Expressions
OBJECT-ORIENTED PROGRAMMING
Classes and Objects
- Class Definition
- Access Specifiers (public, private, protected)
- Member Functions
- Member Variables
Constructors
- Default Constructor
- Parameterized Constructor
- Copy Constructor
- Move Constructor
Destructors
this Pointer
Static Members
Friend Functions and Classes
Const Member Functions
INHERITANCE
Single Inheritance
Multiple Inheritance
Multilevel Inheritance
Hierarchical Inheritance
Virtual Base Classes
Access Control in Inheritance
Constructor/Destructor Order
POLYMORPHISM
Compile-time Polymorphism
- Function Overloading
- Operator Overloading
Runtime Polymorphism
- Virtual Functions
- Pure Virtual Functions
- Abstract Classes
- Virtual Destructors
Virtual Function Table (vtable)
ENCAPSULATION AND ABSTRACTION
Data Hiding
Getter and Setter Methods
Abstract Classes
Interfaces
POINTERS AND REFERENCES
Pointers
- Pointer Basics
- Pointer Arithmetic
- Pointers to Objects
- this Pointer
- Function Pointers
References
- Lvalue References
- Rvalue References
- Reference vs Pointer
Dynamic Memory
- new and delete
- new[] and delete[]
- Memory Leaks
TEMPLATES
Function Templates
Class Templates
Template Specialization
Variadic Templates
Template Metaprogramming
SFINAE
STANDARD TEMPLATE LIBRARY (STL)
CONTAINERS
Sequence Containers
- vector
- deque
- list
- array
- forward_list
Associative Containers
- set, multiset
- map, multimap
Unordered Containers
- unordered_set
- unordered_map
Container Adaptors
- stack
- queue
- priority_queue
ITERATORS
Iterator Types
Iterator Operations
Iterator Invalidation
Reverse Iterators
ALGORITHMS
Non-modifying
- find, count, search
Modifying
- copy, move, transform
Sorting
- sort, stable_sort, partial_sort
Binary Search
Set Operations
Heap Operations
FUNCTORS AND LAMBDA
Function Objects
Lambda Expressions
std::function
std::bind
MODERN C++ (C++11/14/17/20/23)
C++11 FEATURES
Auto keyword
Range-based for loops
nullptr
Move
Post #24555
13