From 23d21b42ca42f15df485527be722ed56d4b9400b Mon Sep 17 00:00:00 2001 From: lfirmin Date: Sat, 14 Feb 2026 09:18:56 +0100 Subject: [PATCH] push --- ex00/Easyfind.hpp | 16 ++++++++++++++++ ex00/Main.cpp | 32 ++++++++++++++++++++++++++++++++ ex00/Makefile | 36 ++++++++++++++++++++++++++++++++++++ ex01/Makefile | 36 ++++++++++++++++++++++++++++++++++++ 4 files changed, 120 insertions(+) create mode 100644 ex00/Easyfind.hpp create mode 100644 ex00/Main.cpp create mode 100644 ex00/Makefile create mode 100644 ex01/Makefile diff --git a/ex00/Easyfind.hpp b/ex00/Easyfind.hpp new file mode 100644 index 0000000..ed92fd9 --- /dev/null +++ b/ex00/Easyfind.hpp @@ -0,0 +1,16 @@ +#ifndef EASYFIND_HPP +#define EASYFIND_HPP + +#include +#include + +template +typename T::iterator easyfind(T &cont, int val) +{ + typename T::iterator it = std::find(cont.begin(), cont.end(), val); + if (it == cont.end()) + throw std::exception(); + return it; +} + +#endif diff --git a/ex00/Main.cpp b/ex00/Main.cpp new file mode 100644 index 0000000..0a315a8 --- /dev/null +++ b/ex00/Main.cpp @@ -0,0 +1,32 @@ +#include "Easyfind.hpp" +#include +#include +#include +int main() +{ + std::vector vec; + vec.push_back(10); + vec.push_back(42); + vec.push_back(56); + vec.push_back(87); + std::cout << "Test vector container" << std::endl << "Find 42 (pos 2)" << std::endl; + std::vector::iterator it = easyfind(vec, 42); + std::cout << "Find " << *it << std::endl; + + std::list lst; + lst.push_back(10); + lst.push_back(47); + lst.push_back(42); + lst.push_back(87); + std::cout << "Test list container" << std::endl << "Find 42 (pos 3)" << std::endl; + std::list::iterator it2 = easyfind(lst, 42); + std::cout << "Find " << *it2 << std::endl; + + std::cout << "Test vector container" << std::endl << "Find 41 (not here !)" << std::endl; + try { + std::vector::iterator it3 = easyfind(vec, 41); + std::cout << "found " << *it3 << std::endl; + } catch (std::exception &e) { + std::cout << "Exeption catch : not found !" << std::endl; + } +} diff --git a/ex00/Makefile b/ex00/Makefile new file mode 100644 index 0000000..8007857 --- /dev/null +++ b/ex00/Makefile @@ -0,0 +1,36 @@ +CXX = c++ +CXXFLAGS = -Wall -Wextra -Werror -std=c++98 +OBJDIR = obj +SOURCES = Main.cpp +OBJECTS = $(addprefix $(OBJDIR)/, $(SOURCES:.cpp=.o)) +NAME = Easyfind + +all: $(NAME) + +$(OBJDIR): + @echo "๐Ÿ“ Creating obj directory..." + @mkdir -p $(OBJDIR) + +$(OBJDIR)/%.o: %.cpp | $(OBJDIR) + @echo "๐Ÿง  Compiling $< ..." + @$(CXX) $(CXXFLAGS) -c $< -o $@ + @echo "โœ… $@ ready!" + +$(NAME): $(OBJECTS) + @echo "๐Ÿ”— Linking $(NAME) ..." + @$(CXX) $(CXXFLAGS) $(OBJECTS) -o $(NAME) + @echo "๐ŸŽ‰ $(NAME) is ready!" + +clean: + @echo "๐Ÿงน Cleaning object files..." + @rm -rf $(OBJDIR) + @echo "โœจ Objects cleaned!" + +fclean: clean + @echo "๐Ÿ—‘๏ธ Removing $(NAME)..." + @rm -f $(NAME) + @echo "๐Ÿ’€ Full clean complete!" + +re: fclean all + +.PHONY: all clean fclean re diff --git a/ex01/Makefile b/ex01/Makefile new file mode 100644 index 0000000..8007857 --- /dev/null +++ b/ex01/Makefile @@ -0,0 +1,36 @@ +CXX = c++ +CXXFLAGS = -Wall -Wextra -Werror -std=c++98 +OBJDIR = obj +SOURCES = Main.cpp +OBJECTS = $(addprefix $(OBJDIR)/, $(SOURCES:.cpp=.o)) +NAME = Easyfind + +all: $(NAME) + +$(OBJDIR): + @echo "๐Ÿ“ Creating obj directory..." + @mkdir -p $(OBJDIR) + +$(OBJDIR)/%.o: %.cpp | $(OBJDIR) + @echo "๐Ÿง  Compiling $< ..." + @$(CXX) $(CXXFLAGS) -c $< -o $@ + @echo "โœ… $@ ready!" + +$(NAME): $(OBJECTS) + @echo "๐Ÿ”— Linking $(NAME) ..." + @$(CXX) $(CXXFLAGS) $(OBJECTS) -o $(NAME) + @echo "๐ŸŽ‰ $(NAME) is ready!" + +clean: + @echo "๐Ÿงน Cleaning object files..." + @rm -rf $(OBJDIR) + @echo "โœจ Objects cleaned!" + +fclean: clean + @echo "๐Ÿ—‘๏ธ Removing $(NAME)..." + @rm -f $(NAME) + @echo "๐Ÿ’€ Full clean complete!" + +re: fclean all + +.PHONY: all clean fclean re