From 7376c1abca195bc6aba7f11997e0ce0ab3a8a8f1 Mon Sep 17 00:00:00 2001 From: lfirmin Date: Wed, 6 May 2026 19:19:42 +0200 Subject: [PATCH] push ex02 --- ex02/Main.cpp | 0 ex02/Makefile | 36 ++++++++++++++++++++++++++++++++++++ ex02/PmergeMe.cpp | 36 ++++++++++++++++++++++++++++++++++++ ex02/PmergeMe.hpp | 35 +++++++++++++++++++++++++++++++++++ 4 files changed, 107 insertions(+) create mode 100644 ex02/Main.cpp create mode 100644 ex02/Makefile create mode 100644 ex02/PmergeMe.cpp create mode 100644 ex02/PmergeMe.hpp diff --git a/ex02/Main.cpp b/ex02/Main.cpp new file mode 100644 index 0000000..e69de29 diff --git a/ex02/Makefile b/ex02/Makefile new file mode 100644 index 0000000..fc149a7 --- /dev/null +++ b/ex02/Makefile @@ -0,0 +1,36 @@ +CXX = c++ +CXXFLAGS = -Wall -Wextra -Werror -std=c++98 +OBJDIR = obj +SOURCES = Main.cpp RPN.cpp +OBJECTS = $(addprefix $(OBJDIR)/, $(SOURCES:.cpp=.o)) +NAME = RPN + +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/ex02/PmergeMe.cpp b/ex02/PmergeMe.cpp new file mode 100644 index 0000000..047ca45 --- /dev/null +++ b/ex02/PmergeMe.cpp @@ -0,0 +1,36 @@ +#include "PmergeMe.hpp" + +PmergeMe::PmergeMe() +{ +} + +PmergeMe::PmergeMe(const PmergeMe &other) +{ + this->_vec = other._vec; + this->_deq = other._deq; +} + +PmergeMe &PmergeMe::operator=(const PmergeMe &other) +{ + this->_vec = other._vec; + this->_deq = other._deq; + return (*this); +} + +PmergeMe::~PmergeMe() +{ +} + +void PmergeMe::printDeque() const +{ + for (std::deque::const_iterator it = _deq.begin(); it != _deq.end(); ++it) + std::cout << *it << " "; + std::cout << std::endl; +} + +void PmergeMe::printVector() const +{ + for (std::vector::const_iterator it = _vec.begin(); it != _vec.end(); ++it) + std::cout << *it << " "; + std::cout << std::endl; +} diff --git a/ex02/PmergeMe.hpp b/ex02/PmergeMe.hpp new file mode 100644 index 0000000..6ae2b38 --- /dev/null +++ b/ex02/PmergeMe.hpp @@ -0,0 +1,35 @@ +#ifndef PMERGEME_HPP +# define PMERGEME_HPP + +# include +# include +# include +# include +# include +# include +# include + +class PmergeMe +{ + public: + PmergeMe(); + PmergeMe(const PmergeMe &other); + PmergeMe &operator=(const PmergeMe &other); + ~PmergeMe(); + + void run(int ac, char **av); + + private: + std::vector _vec; + std::deque _deq; + + void parseInput(int ac, char **av); + + void sortVector(); + void sortDeque(); + + void printDeque() const; + void printVector() const; +}; + +#endif