Fading Coder

One Final Commit for the Last Sprint

Common Sorting Algorithm Implementations in C++

Direct Insertion Sort This algorithm treats the first element of the input array as a pre-sorted subarray. Starting from the second element, each value is compared against elements in the pre-sorted section and placed in its appropriate ordered position. It has an average and worst-case time complex...

Navigating Boundary Conventions in Binary Search Implementations

The selection of boundary conventions dictates loop termination conditions, pointer arithmetic, and overall robustness in divide-and-conquer search routines. Understanding how to model the search window is essential for avoiding infinite loops and index-out-of-bounds exceptions. Mathematical Interva...

Implementing a Generic Array Class in C++ with Correct Copy Semantics and Common Operations

Functinoal Requirements Supports storage of both primitive built-in data types and user-defined custom types All underlying element storage is allocated on the heap Constructor accepts a integer parameter to define the initial array capacity Implements custom copy constructor and copy assignment ope...

Understanding Data Types and Their Memory Footprint in C/C++

C++ encludes a variety of data types, each with specific memory requirements and use cases. The table below summarizes common data types, their byte sizes, and descriptions. Data Type Bytes Description char 1 Stores a single character, typically 8 bits. signed char 1 Signed version of char, represen...

Introduction to C++ Templates

Generic Programming Consider an example: How to implement a generic swap function? In C++, function overloading allows us to use the same function name for different types. For example: void Exchange(int& a, int& b) { int temp = a; a = b; b = temp; } void Exchange(double& a, double&...

C++ Fundamentals: Variable Swapping and Syntax Comments

Exchanging Variable Values Directly assigning one variible to another overwrites the original data, preventing recovery of the initial value. To successfully interchange contents between two storage locations, a temporary buffer is necessary. Consider this implementation using standard integer types...

Understanding C++ Special Member Functions and Operator Overloading

In C++, a class definition automatically receives several special member functions when they are not explicitly declared by the programmer. These compiler-generated routines handle object lifecycle management and initialization. The primary functions include the default constructor, destructor, copy...

Implementing C++ Classes with Constructors, Friends, and Static Members

Class T: Demonstrating Constructors and Static Members Header File: T.h #pragma once #include <string> class T { public: T(int val1 = 0, int val2 = 0); T(const T &source); T(T &&source); ~T(); void scale(int factor); void show() const; static int current_count(); static const std::...

Dynamic Memory Allocation and Generic Programming in C++

Heap Allocation with new and delete C++ replaces traditional C allocation routines with operators that seamlessly integrate object lifecycles. Primitive Data Allocation Fundamental types use straightforward syntax. Single items require new/delete, while contiguous blocks require new[]/delete[]. Mism...

Implementing a Dynamic Array Container in Modern C++

A custom vector implementation relies on managing three pointers that track the boundaries of allocated storage and initialized elements. This implementasion explores memory management strategies, proper deep-copy semantics, and iterator stability during reallocation. Core Architecture template <...