Learn CPP
A comprehensive C++ project showcasing implementations of common data structures, algorithms, design patterns, and modern C++ features.
Learn CPP
A comprehensive C++ project showcasing implementations of common data structures, algorithms, design patterns, and modern C++ features.
Tech Stack :
C++ Learning Project
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.
๐ฏ Project Overview
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
๐ Getting Started
Prerequisites
- CMake 3.27 or higher
- Modern C++ Compiler (GCC-14, LLVM-18, or MSVC)
- Ninja or Visual Studio 2022 (for Windows)
Building the Project
- Clone the repository
- Create a build directory
- Configure and build
๐๏ธ Project Structure
src/
- Main source code directorydata-structures/
- Implementation of common data structuresalgorithms/
- Various algorithm implementationspatterns/
- Design pattern examplestemplates/
- Template metaprogramming examplesmemory/
- Memory management concepts
๐ ๏ธ Development Environment
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)
VS Code Extensions
The project comes with recommended extensions for C++ development:
- C/C++ tools
- CMake tools
- Doxygen documentation generator
- Git integration
- Code formatting and analysis tools
๐งช Quality Assurance
The project employs several tools to maintain code quality:
- Static Analysis (clang-tidy, cppcheck)
- CodeQL Analysis
- Automated CI/CD pipelines
- Comprehensive build matrix testing
๐ Learning Resources
Each implementation includes detailed documentation explaining:
- Theoretical concepts
- Time and space complexity
- Common use cases
- Code examples
- References for further reading
๐ License
This project is licensed under the MIT License.