This repository is a curated collection of concise yet comprehensive C++ interview cheatsheets, covering everything from core concepts to advanced topics. Whether you're prepping for FAANG, quant firms, or embedded systems roles β these notes will help you refresh key ideas fast and avoid common pitfalls.
β οΈ Warning: If you don't know a specific topic, then the material in this repository won't help you study it. Don't forget to read books, articles, and program regularly!)
| No | Done | Topic | Description |
|---|---|---|---|
| 1. | β | About Me & Experience | How to present your C++ background effectively. |
| 2. | β | OOP & Classes | Inheritance, polymorphism, abstract classes, rule of 3/5/0, constructors, destructors. |
| 3. | β | Patterns, Principles & Idioms | SOLID, RAII, PIMPL, CRTP, Factory, Observer, Singleton patterns. |
| 4. | β | Smart Pointers | unique_ptr, shared_ptr, weak_ptr, custom deleters, circular references. |
| 5. | β | Algorithms & Data Structures | Big-O complexity analysis, trees, graphs, sorting, searching. |
| 6. | β | STL & Containers | Vector vs list vs deque, map/unordered_map performance. |
| 7. | β | Multithreading & Synchronization | Mutexes, atomics, condition variables, deadlock prevention strategies. |
| 8. | β³ | Memory & Resource Management | Stack vs heap, alignment, memory leaks detection. |
| 9. | β³ | Exceptions & Safety | Exception guarantees (strong, basic, noexcept), resource acquisition pitfalls. |
| 10. | β³ | Networking | Sockets, TCP/UDP basics, Boost.Asio examples. |
| 11. | β³ | C++ Syntax & Features | Move semantics, lambda expressions, structured bindings, if constexpr. |
| 12. | β³ | Low-Level Aspects | Alignment, cache lines, bit manipulation tricks. |
| 13. | β³ | Optimization & Practical Tasks | CPU cache awareness, branch prediction optimization. |
| 14. | β³ | Testing | GoogleTest examples, mocking techniques. |
| 15. | β³ | Logging | Best practices for debug logging, performance impact analysis. |
| 16. | β³ | Development Tools | Some IDEs features, Git, Jira, GDB, Valgrind, Clang-Tidy, profilers (perf, VTune), Protobuf, gRPC. |
| 17. | β³ | Other | Topics that every C++ developer should know. |
- Saves Time: No need to dig through books β key concepts summarized in one place.
- Practical Examples: Code snippets to illustrate ideas (not just theory!).
- Interview-Focused: Covers exactly whatβs asked in real C++ interviews.
- Community-Driven: Contributions welcome! Found a mistake? Open a PR.
- Clone the repo:
git clone https://github.com/25-masik-52/CppInterviewKit.git - Download Obsidian.
- Set up environment in Obsidian.
- Enjoy using & Star β the repo if it helps you!
π‘ Pro Tip: Pair this with Leetcode/HackerRank for coding practice. Good luck! π₯
- License MIT.
- Made with β€οΈ for C++ developers.
- Contributions welcome!
All comments are written according to Conventional Commits.