push ex02

This commit is contained in:
LEO FIRMIN 2026-05-06 21:09:45 +02:00
parent 7376c1abca
commit 0f3bacbfcf
4 changed files with 51 additions and 12 deletions

View File

@ -0,0 +1,15 @@
#include "PmergeMe.hpp"
int main(int ac, char **av)
{
PmergeMe pm;
try {
pm.parseInput(ac, av);
pm.printVector();
pm.printDeque();
} catch (const std::exception &e) {
std::cerr << e.what() << std::endl;
return 1;
}
return 0;
}

View File

@ -1,9 +1,9 @@
CXX = c++
CXXFLAGS = -Wall -Wextra -Werror -std=c++98
OBJDIR = obj
SOURCES = Main.cpp RPN.cpp
SOURCES = Main.cpp PmergeMe.cpp
OBJECTS = $(addprefix $(OBJDIR)/, $(SOURCES:.cpp=.o))
NAME = RPN
NAME = PmergeMe
all: $(NAME)

View File

@ -34,3 +34,24 @@ void PmergeMe::printVector() const
std::cout << *it << " ";
std::cout << std::endl;
}
void PmergeMe::parseInput(int ac, char **av)
{
std::string token;
int n;
for (int i = 1; i < ac; i++) {
std::istringstream ss(av[i]);
while (ss >> token) {
std::istringstream iss(token);
if (!(iss >> n) || !iss.eof() || n < 0)
throw std::runtime_error("Error");
if (std::find(_vec.begin(), _vec.end(), n) != _vec.end())
throw std::runtime_error("Error");
_vec.push_back(n);
_deq.push_back(n);
}
}
if (_vec.empty())
throw std::runtime_error("Error");
}

View File

@ -1,13 +1,14 @@
#ifndef PMERGEME_HPP
# define PMERGEME_HPP
# include <vector>
# include <deque>
# include <string>
# include <stdexcept>
# include <iostream>
# include <ctime>
# include <sstream>
#include <algorithm>
#include <ctime>
#include <deque>
#include <iostream>
#include <sstream>
#include <stdexcept>
#include <string>
#include <vector>
class PmergeMe
{
@ -23,13 +24,15 @@ class PmergeMe
std::vector<int> _vec;
std::deque<int> _deq;
void printDeque() const;
void printVector() const;
void parseInput(int ac, char **av);
void sortVector();
void sortDeque();
void printDeque() const;
void printVector() const;
};
#endif