{"id":26489958,"url":"https://github.com/taharachedi/custom_dynamic_array_library-cpp","last_synced_at":"2025-03-20T07:53:40.873Z","repository":{"id":281178172,"uuid":"944459727","full_name":"taharachedi/Custom_Dynamic_Array_Library-CPP","owner":"taharachedi","description":"A C++ template-based dynamic array implementation offering essential operations such as insertion, deletion, resizing, searching, and reversal.","archived":false,"fork":false,"pushed_at":"2025-03-07T11:57:26.000Z","size":0,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-07T12:29:04.330Z","etag":null,"topics":["datastructures-algorithms","dynamic-array"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/taharachedi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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-03-07T11:35:21.000Z","updated_at":"2025-03-07T11:59:38.000Z","dependencies_parsed_at":"2025-03-07T12:29:06.196Z","dependency_job_id":"3fc3de37-a5f2-4bbe-a2cc-216d568b48a9","html_url":"https://github.com/taharachedi/Custom_Dynamic_Array_Library-CPP","commit_stats":null,"previous_names":["taharachedi/custom_dynamic_array_library-cpp"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taharachedi%2FCustom_Dynamic_Array_Library-CPP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taharachedi%2FCustom_Dynamic_Array_Library-CPP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taharachedi%2FCustom_Dynamic_Array_Library-CPP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/taharachedi%2FCustom_Dynamic_Array_Library-CPP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/taharachedi","download_url":"https://codeload.github.com/taharachedi/Custom_Dynamic_Array_Library-CPP/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244574743,"owners_count":20474818,"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":["datastructures-algorithms","dynamic-array"],"created_at":"2025-03-20T07:53:40.321Z","updated_at":"2025-03-20T07:53:40.861Z","avatar_url":"https://github.com/taharachedi.png","language":"C++","readme":"# 📌Dynamic Array Implementation (clsDynamicArray)⚡\n\n\u003e **A C++ template-based dynamic array implementation with powerful functionalities for managing elements efficiently. 🚀**\n\n---\n\n## 🌟 Project Overview\n\nThe `clsDynamicArray` class is a **generic dynamic array** implementation in C++ that supports **resizing**, **modifications**, and **element manipulations**. It provides a flexible way to manage collections of data with dynamic memory allocation, ensuring optimal performance and usability.\n\n### 🔹 Core Functionalities:\n- **Insert** elements at any position ➕\n- **Delete** elements efficiently ❌\n- **Resize** dynamically to manage memory ♻️\n- **Reverse** the entire array order 🔄\n- **Find \u0026 Modify** elements easily 🔍\n- **Clear** the array in one call ✨\n\nThis implementation leverages **C++ templates**, making it compatible with any data type.\n\n---\n\n## ✨ Features\n\n### 🔹 Basic Operations\n- **`SetItem(Index, Value)`**: Updates the element at a specific index.\n- **`GetItem(Index)`**: Retrieves the element at a given index.\n- **`Size()`**: Returns the total number of elements in the array.\n- **`IsEmpty()`**: Checks if the array is empty.\n- **`PrintList()`**: Displays all elements in the array.\n\n### 🔹 Advanced Functionalities\n- **`Resize(New_Size)`**: Adjusts the size of the array dynamically.\n- **`Reverse()`**: Reverses the order of elements.\n- **`Clear()`**: Removes all elements and frees memory.\n- **`Find(Value)`**: Returns the index of the first occurrence of a value (-1 if not found).\n- **`DeleteItem(Value)`**: Deletes the first occurrence of a given value.\n- **`DeleteItemAt(Index)`**: Deletes the element at a specific index.\n- **`DeleteFirstItem()`**: Removes the first element.\n- **`DeleteLastItem()`**: Removes the last element.\n- **`InsertAt(Index, Value)`**: Inserts an element at a specified position.\n- **`InsertAtBeginning(Value)`**: Inserts an element at the start.\n- **`InsertAtEnd(Value)`**: Inserts an element at the end.\n- **`InsertBefore(Index, Value)`**: Inserts an element before a given index.\n- **`InsertAfter(Index, Value)`**: Inserts an element after a given index.\n\n---\n\n## 🚀 How It Works\n\n### 🔹 Insertion \u0026 Deletion\n- Use `InsertAt(Index, Value)` to place an element at a specific position.\n- `DeleteItemAt(Index)` removes an element from a given index.\n- `DeleteFirstItem()` and `DeleteLastItem()` handle edge cases.\n\n### 🔹 Resizing \u0026 Memory Management\n- `Resize(New_Size)` adjusts the capacity dynamically, ensuring optimal usage.\n- `Clear()` safely deletes all elements to prevent memory leaks.\n\n### 🔹 Searching \u0026 Modifications\n- `Find(Value)` locates elements efficiently.\n- `SetItem(Index, Value)` allows modifying elements dynamically.\n\n---\n\n## 📚 Potential Enhancements\n\n- 🏢 **Iterator Support**: Enabling STL-like traversal.\n- ⌛ **Performance Optimization**: Enhancing efficiency for large datasets.\n- 💾 **Persistent Storage**: Implementing file-based data storage.\n- ⚙ **Thread Safety**: Supporting concurrent operations.\n\n---\n\n## ⚙️ Technologies Used\n\n- **Language**: C++\n- **Templates**: Supports multiple data types.\n- **Dynamic Memory Allocation**: Utilizes heap memory efficiently.\n\n---\n\n## 🎯 Learning Outcomes\n\nThis project demonstrates:\n- ✅ **Dynamic memory management with pointers**\n- ✅ **Efficient array operations (insert, delete, find, modify)**\n- ✅ **Generic programming using C++ templates**\n\n---\n\n## 🌟 License\n\nThis project is **open-source**. Feel free to modify and enhance it! 🚀\n\n---\n\n## 🤝 Contributing\n\nContributions are welcome! If you have ideas for improvements, submit a Pull Request.\n\n---\n\n## 🏁 Ready to Explore?\n\n### 🚀 How to Run\n1. **Download** the repository.\n2. **Include** `clsDynamicArray.h` in your project.\n3. **Compile \u0026 Run** your C++ program with a standard compiler (e.g., `g++ main.cpp -o output`).\n4. **Test** various array operations.\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaharachedi%2Fcustom_dynamic_array_library-cpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftaharachedi%2Fcustom_dynamic_array_library-cpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftaharachedi%2Fcustom_dynamic_array_library-cpp/lists"}