{"id":26529322,"url":"https://github.com/ayush272002/stl","last_synced_at":"2025-07-29T18:03:01.255Z","repository":{"id":276880051,"uuid":"914047527","full_name":"Ayush272002/STL","owner":"Ayush272002","description":"Custom implementation of selected components of the C++ Standard Template Library (STL)","archived":false,"fork":false,"pushed_at":"2025-02-10T23:22:32.000Z","size":988,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-11T00:23:35.400Z","etag":null,"topics":["cpp","stl-containers"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ayush272002.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-01-08T21:05:31.000Z","updated_at":"2025-02-10T23:22:36.000Z","dependencies_parsed_at":"2025-02-11T00:23:38.041Z","dependency_job_id":"34951332-64a3-489e-878a-3ef190b94f78","html_url":"https://github.com/Ayush272002/STL","commit_stats":null,"previous_names":["ayush272002/stl"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ayush272002%2FSTL","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ayush272002%2FSTL/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ayush272002%2FSTL/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ayush272002%2FSTL/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ayush272002","download_url":"https://codeload.github.com/Ayush272002/STL/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244829139,"owners_count":20517252,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cpp","stl-containers"],"created_at":"2025-03-21T16:29:49.572Z","updated_at":"2025-03-21T16:29:50.266Z","avatar_url":"https://github.com/Ayush272002.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# C++ STL Implementation from Scratch\n\nThis project is a custom implementation of selected components of the C++ Standard Template Library (STL). The aim is to understand the internal workings of STL, enhance coding skills, and prepare for technical interviews where such knowledge is often tested.\n\n## Overview\n\nThis repository includes implementations of commonly used STL data structures and algorithms. Each implementation is designed to mimic the behavior of the corresponding STL component, focusing on correctness, efficiency, and reusability.\n\n## Features\n\n### Containers\n\n- **string**: A custom string class with dynamic memory management, efficient resizing, C-string support, concatenation, and element access with bounds checking.\n- **Vector**: Dynamic array with contiguous memory storage, supporting random access, dynamic resizing, and efficient insertion/removal at the end.\n- **List**: A custom singly linked list implementation supporting efficient insertions and deletions at both ends and arbitrary positions, with features like dynamic memory management, size tracking, and element access.\n- **Stack**: A custom stack implementation supporting dynamic resizing, efficient push/pop operations, top access, size tracking, and emptiness checking with error handling.\n- **Queue**: A custom queue implementation supporting dynamic resizing, efficient push/pop operations, front access, size tracking, and emptiness checking with error handling.\n\n## How to Use\n\n### Requirements\n\n- C++17 or later\n- CMake (for build automation)\n- A modern C++ compiler (e.g., g++, clang++)\n\n### Building the Project\n\n1. Clone the repository:\n   ```bash\n   git clone https://github.com/Ayush272002/STL.git\n   cd STL\n   ```\n2. Build using Make:\n   ```bash\n   make all\n   ```\n3. Run tests (for a specific container eg:- vector):\n   ```bash\n   make vector_test\n   ./vector_test.out\n   ```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fayush272002%2Fstl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fayush272002%2Fstl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fayush272002%2Fstl/lists"}