A comprehensive C++ project showcasing implementations of common data structures, algorithms, design patterns, and modern C++ features. This project serves as both a learning resource and a reference implementation.
This project includes implementations and examples of:
- Data Structures (Binary Trees, Hash Maps, Linked Lists, etc.)
- Algorithms (Sorting, Searching)
- Design Patterns (Creational, Structural, Behavioral)
- Modern C++ Features (Templates, RAII)
- Memory Management Concepts
- CMake 3.27 or higher
- Modern C++ Compiler (GCC-14, LLVM-18, or MSVC)
- Ninja or Visual Studio 2022 (for Windows)
- Clone the repository
git clone https://github.com/FaZeRs/learn-cpp.git
cd learn-cpp
- Create a build directory
mkdir build && cd build
- Configure and build
cmake -G "Ninja" ..
cmake --build .
src/
- Main source code directorydata-structures/
- Implementation of common data structuresalgorithms/
- Various algorithm implementationspatterns/
- Design pattern examplestemplates/
- Template metaprogramming examplesmemory/
- Memory management concepts
This project includes a complete development environment setup using:
- DevContainer configuration for VS Code
- Pre-configured development tools and extensions
- Automated CI/CD pipelines
- Code quality tools (clang-tidy, cppcheck)
The project comes with recommended extensions for C++ development:
- C/C++ tools
- CMake tools
- Doxygen documentation generator
- Git integration
- Code formatting and analysis tools
The project employs several tools to maintain code quality:
- Static Analysis (clang-tidy, cppcheck)
- CodeQL Analysis
- Automated CI/CD pipelines
- Comprehensive build matrix testing
Each implementation includes detailed documentation explaining:
- Theoretical concepts
- Time and space complexity
- Common use cases
- Code examples
- References for further reading
Contributions are welcome! Please feel free to submit pull requests. Make sure to:
- Follow the existing code style
- Add appropriate documentation
- Update relevant README files
This project is licensed under the MIT License. See the LICENSE file for details.