This repository serves as a showcase of my intermediate-to-advanced C++ development skills. The codebase demonstrates a strong understanding of fundamental programming paradigms, manual memory management, Object-Oriented Programming (OOP), and modern C++ features.
- Language: C++
- Standard Library: STL (Containers, Algorithms, Iterators)
- Build Tools: GNU Make
- Data Visualization: Gnuplot (
gnuplot_i) - Core Skills: OOP, Generic Programming (Templates), Memory Management, File I/O, Error Handling
- Deep understanding of pointers, references, and data types.
- Dynamic memory allocation and safe resource management.
- Efficient manipulation of arrays, C-strings, and
std::string. - Control flow, conditional statements, and utilizing the
cmathlibrary.
- Designing robust classes with proper access modifiers (encapsulation).
- Implementing constructors, destructors, and operator overloading.
- Utilizing inheritance hierarchies and achieving runtime polymorphism.
- Structuring multi-file projects with proper header file definitions.
- Implementing function and class templates to write DRY (Don't Repeat Yourself) code.
- Utilizing lambda expressions and the
statickeyword. - Working with complex data structures like
std::pair,std::tuple, andstd::valarray.
- Practical application of STL containers (e.g., maps, vectors).
- Iterating through data structures and applying STL algorithms for efficient processing.
- I/O Streams: Reading and writing data using file streams and string streams.
- Exception Handling: Building resilient applications by catching and managing edge cases with
std::exceptand custom exceptions. - Build Automation: Writing
Makefilesto automate the compilation of multi-file projects. - Visualization: Integrating
gnuplot_ifor data plotting directly from C++ code.