Learn CPP

A comprehensive C++ project showcasing implementations of common data structures, algorithms, design patterns, and modern C++ features.


Tech Stack :
Learn CPP

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

  1. Clone the repository
git clone https://github.com/FaZeRs/learn-cpp.git
cd learn-cpp
  1. Create a build directory
mkdir build && cd build
  1. Configure and build
cmake -G "Ninja" ..
cmake --build .

๐Ÿ—๏ธ Project Structure

  • src/ - Main source code directory
    • data-structures/ - Implementation of common data structures
    • algorithms/ - Various algorithm implementations
    • patterns/ - Design pattern examples
    • templates/ - Template metaprogramming examples
    • memory/ - 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.