Progress
This book is being written a chapter at a time. Every chapter below is already outlined with its objectives fixed; the ones marked written have their prose, runnable examples, and diagrams in place.
84/84chapters written
100%of the book
124,138words
205problems
Part 1 · Foundations
6 of 6
Part 2 · Memory and objects
7 of 7
Part 3 · Types you make
8 of 8
| Chapter | State | Words | Problems |
| Structs and classes |
written |
1,217 |
1 |
| RAII |
written |
1,805 |
2 |
| Copying |
written |
1,609 |
1 |
| Moving |
written |
1,621 |
2 |
| Rule of zero, three, five |
written |
1,306 |
1 |
| Operator overloading |
written |
1,058 |
2 |
| Inheritance and virtual functions |
written |
1,168 |
2 |
| When not to use inheritance |
written |
1,130 |
1 |
Part 4 · The standard library
9 of 9
| Chapter | State | Words | Problems |
| std::string and text |
written |
1,625 |
2 |
| Sequence containers |
written |
1,864 |
2 |
| Associative containers |
written |
1,371 |
2 |
| Iterators |
written |
1,251 |
2 |
| Algorithms |
written |
1,080 |
2 |
| Ranges and views |
written |
1,285 |
2 |
| Smart pointers |
written |
1,838 |
2 |
| optional, variant, expected |
written |
1,267 |
2 |
| Input, output, formatting |
written |
1,038 |
2 |
Part 5 · Generic programming
8 of 8
Part 6 · Correctness
6 of 6
Part 7 · Performance
6 of 6
Part 8 · Concurrency
5 of 5
Part 9 · Building real software
5 of 5
Part 10 · Problem solving
24 of 24
| Chapter | State | Words | Problems |
| Reading a problem |
written |
1,907 |
4 |
| Counting the work |
written |
1,583 |
4 |
| Template and fast I/O |
written |
1,632 |
3 |
| Sorting and comparators |
written |
1,466 |
4 |
| Binary search |
written |
1,555 |
4 |
| Two pointers |
written |
1,201 |
4 |
| Prefix sums |
written |
1,997 |
4 |
| Monotonic stacks |
written |
1,720 |
4 |
| Monotonic deques |
written |
1,564 |
4 |
| Hashing and counting |
written |
1,597 |
4 |
| Recursion |
written |
1,516 |
4 |
| Bitmasks |
written |
1,487 |
4 |
| Greedy |
written |
1,375 |
4 |
| Divide and conquer |
written |
1,431 |
4 |
| Meet in the middle |
written |
1,456 |
4 |
| Representing graphs |
written |
1,372 |
4 |
| BFS |
written |
1,391 |
4 |
| DFS |
written |
1,449 |
4 |
| Topological order |
written |
1,313 |
4 |
| Union-Find |
written |
1,309 |
4 |
| Dijkstra |
written |
1,422 |
4 |
| Negative weights |
written |
1,411 |
4 |
| Spanning trees |
written |
1,674 |
4 |
| Tree DP |
written |
1,725 |
4 |