C++ Typing Practice Chapters
150 exercises across 15 chapters, ordered from basic syntax to advanced patterns. Each section is real C++ code, and your best speed and accuracy are saved per section.
Basic Syntax
Learn C++ basic syntax and data types
Variables & Data Types
Basic Operators
Control Flow
Loops
Arrays
Functions
String Operations
Input/Output
Type Casting
Mixed Basic Practice
Control Flow
Master C++ control flow statements
If-Else Statements
Switch Statements
For Loops
While Loops
Break and Continue
Nested Loops
Conditional Operator
Goto Statements
Exception Handling
Mixed Control Flow Practice
Strings & Streams
std::string, string_view, and stream I/O
std::string Basics
Find and Substr
string_view
stringstream
Stream Formatting
Reading Input
File Streams
String Conversions
String Algorithms
Mixed String Practice
Functions
Learn about functions in C++
Function Declaration
Function Definition
Function Overloading
Default Arguments
Inline Functions
Recursive Functions
Lambda Expressions
Function Pointers
std::function
Mixed Function Practice
Lambdas & Functional
Captures, std::function, and callable patterns
Lambda Basics
Captures
Mutable Lambdas
Generic Lambdas
std::function
Callbacks
Comparator Lambdas
Immediately Invoked Lambdas
Function Pointers
Mixed Lambda Practice
Object-Oriented Programming
Master C++ OOP concepts
Classes and Objects
Constructors
Destructors
Inheritance
Polymorphism
Abstract Classes
Interfaces
Encapsulation
Operator Overloading
Mixed OOP Practice
Errors & RAII
Exceptions, noexcept, and resource safety
Try and Catch
Throwing Exceptions
Custom Exceptions
noexcept
RAII Wrapper
Scope Guard
Rethrow and Nested
Error Codes
Assertions
Mixed Error Practice
Templates
Learn C++ template programming
Function Templates
Class Templates
Template Specialization
Variadic Templates
Template Metaprogramming
SFINAE
Template Type Deduction
Concepts (C++20)
Template Aliases
Mixed Template Practice
Standard Template Library
Master the C++ Standard Template Library
Vector
String
Map
Set
Algorithms
Iterators
Queue and Stack
List
Deque
Mixed STL Practice
Algorithms
The <algorithm> and <numeric> headers in daily use
Sorting
Finding Elements
Transform
Accumulate and Reduce
Counting
Erase-Remove Idiom
Min and Max
all_of and none_of
Partition and Unique
Mixed Algorithm Practice
Containers & Utilities
map, set, pair, tuple, optional, and variant
std::map
std::unordered_map
std::set
pair and tuple
std::optional
std::variant
std::array and span
deque and priority_queue
Structured Bindings
Mixed Container Practice
Memory Management
Understanding C++ memory management and smart pointers
Dynamic Memory
Unique Pointer
Shared Pointer
Weak Pointer
Memory Leak Prevention
Custom Deleters
Circular References
Placement New
Memory Alignment
Mixed Memory Practice
Modern C++ Features
Explore features from C++11 onwards
Auto and Decltype
Range-Based For Loop
Move Semantics
Structured Bindings
Constexpr
Optional and Variant
Fold Expressions
If Constexpr
String View
Mixed Modern Practice
Concurrency
Multi-threading and concurrent programming in C++
Basic Thread Creation
Mutex and Locks
Condition Variables
Async and Futures
Promise and Future
Atomic Operations
Thread Local Storage
Shared Mutex
Parallel Algorithms
Mixed Concurrency Practice
Best Practices
C++ coding standards and best practices
