{"id":26078221,"url":"https://github.com/jos-felipe/cpp-module-08","last_synced_at":"2026-03-10T13:30:58.513Z","repository":{"id":278254180,"uuid":"935023584","full_name":"jos-felipe/cpp-module-08","owner":"jos-felipe","description":"This module is designed to help you understand templated containers, iterators and algorithms in CPP.","archived":false,"fork":false,"pushed_at":"2025-02-21T18:43:56.000Z","size":12,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-09T03:51:14.861Z","etag":null,"topics":["imperative-programming","object-oriented-programming","rigor"],"latest_commit_sha":null,"homepage":"https://projects.intra.42.fr/projects/cpp-module-08","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/jos-felipe.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-02-18T19:28:38.000Z","updated_at":"2025-02-21T18:44:00.000Z","dependencies_parsed_at":"2025-02-18T20:35:06.922Z","dependency_job_id":"bf73465f-7cd4-41a6-82f8-ff63cf0dcc3d","html_url":"https://github.com/jos-felipe/cpp-module-08","commit_stats":null,"previous_names":["jos-felipe/cpp-module-08"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jos-felipe/cpp-module-08","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jos-felipe%2Fcpp-module-08","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jos-felipe%2Fcpp-module-08/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jos-felipe%2Fcpp-module-08/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jos-felipe%2Fcpp-module-08/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jos-felipe","download_url":"https://codeload.github.com/jos-felipe/cpp-module-08/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jos-felipe%2Fcpp-module-08/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30334623,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T12:41:07.687Z","status":"ssl_error","status_checked_at":"2026-03-10T12:41:06.728Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["imperative-programming","object-oriented-programming","rigor"],"created_at":"2025-03-09T03:50:22.651Z","updated_at":"2026-03-10T13:30:58.496Z","avatar_url":"https://github.com/jos-felipe.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# C++ Module 08 - Templated Containers, Iterators, Algorithms\n\nThis module explores key components of the C++ Standard Template Library (STL): templated containers, iterators, and algorithms. Through these exercises, you'll learn how to use these powerful abstractions to write more flexible, reusable, and efficient code.\n\n## Overview\n\nThe STL is one of C++'s most valuable features, providing a collection of templated classes and functions that implement common data structures and algorithms. This module introduces:\n\n- **Templated Containers**: Type-generic collections that store and organize data\n- **Iterators**: Objects that enable traversal through container elements\n- **Algorithms**: Generic functions that operate on ranges of elements\n\n## Exercises\n\n### Exercise 00: Easy find\nAn introduction to using STL algorithms with different container types. Implements a generic `easyfind` function that locates the first occurrence of an integer value in any container.\n\n**Key concepts:**\n- Function templates\n- STL container compatibility\n- The `std::find` algorithm\n- Error handling with exceptions\n\n### Exercise 01: Span\nImplementation of a custom class that stores a set of integers and provides methods to find the shortest and longest span (distance) between any two elements.\n\n**Key concepts:**\n- Class design\n- STL vector usage\n- Algorithmic problem solving\n- Range-based operations with iterators\n\n### Exercise 02: MutantStack\nCreation of an extended stack container that maintains all standard stack functionality while adding iterator support.\n\n**Key concepts:**\n- Container inheritance\n- STL containers and adapters\n- Iterator types\n- Code reusability\n\n## Skills Developed\n\n- Understanding container properties and selection criteria\n- Implementing generic code with templates\n- Working with different iterator types and categories\n- Applying STL algorithms to solve problems\n- Extending and customizing STL containers\n\n## Usage\n\nEach exercise contains its own directory with the necessary files:\n\n```\nex00/ - Easy find\n├── easyfind.hpp\n├── main.cpp\n└── Makefile\n\nex01/ - Span\n├── Span.hpp\n├── Span.cpp\n├── main.cpp\n└── Makefile\n\nex02/ - MutantStack\n├── MutantStack.hpp\n├── main.cpp\n└── Makefile\n```\n\n### Building and Running\n\nTo compile any exercise:\n\n```bash\ncd ex0X\nmake\n```\n\nThen run the resulting executable:\n\n```bash\n./easyfind\n./span\n./mutantstack\n```\n\n## Notes\n\n- All code complies with the C++98 standard\n- Each exercise demonstrates different aspects of STL usage\n- Tests are included to verify functionality\n\n---\n\n2025 | J Felipe | josfelip@student.42sp.org.br","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjos-felipe%2Fcpp-module-08","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjos-felipe%2Fcpp-module-08","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjos-felipe%2Fcpp-module-08/lists"}