push ex02
This commit is contained in:
parent
7376c1abca
commit
0f3bacbfcf
|
|
@ -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;
|
||||||
|
}
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
CXX = c++
|
CXX = c++
|
||||||
CXXFLAGS = -Wall -Wextra -Werror -std=c++98
|
CXXFLAGS = -Wall -Wextra -Werror -std=c++98
|
||||||
OBJDIR = obj
|
OBJDIR = obj
|
||||||
SOURCES = Main.cpp RPN.cpp
|
SOURCES = Main.cpp PmergeMe.cpp
|
||||||
OBJECTS = $(addprefix $(OBJDIR)/, $(SOURCES:.cpp=.o))
|
OBJECTS = $(addprefix $(OBJDIR)/, $(SOURCES:.cpp=.o))
|
||||||
NAME = RPN
|
NAME = PmergeMe
|
||||||
|
|
||||||
all: $(NAME)
|
all: $(NAME)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,3 +34,24 @@ void PmergeMe::printVector() const
|
||||||
std::cout << *it << " ";
|
std::cout << *it << " ";
|
||||||
std::cout << std::endl;
|
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");
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,14 @@
|
||||||
#ifndef PMERGEME_HPP
|
#ifndef PMERGEME_HPP
|
||||||
# define PMERGEME_HPP
|
# define PMERGEME_HPP
|
||||||
|
|
||||||
# include <vector>
|
#include <algorithm>
|
||||||
# include <deque>
|
#include <ctime>
|
||||||
# include <string>
|
#include <deque>
|
||||||
# include <stdexcept>
|
#include <iostream>
|
||||||
# include <iostream>
|
#include <sstream>
|
||||||
# include <ctime>
|
#include <stdexcept>
|
||||||
# include <sstream>
|
#include <string>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
class PmergeMe
|
class PmergeMe
|
||||||
{
|
{
|
||||||
|
|
@ -23,13 +24,15 @@ class PmergeMe
|
||||||
std::vector<int> _vec;
|
std::vector<int> _vec;
|
||||||
std::deque<int> _deq;
|
std::deque<int> _deq;
|
||||||
|
|
||||||
|
void printDeque() const;
|
||||||
|
void printVector() const;
|
||||||
|
|
||||||
void parseInput(int ac, char **av);
|
void parseInput(int ac, char **av);
|
||||||
|
|
||||||
void sortVector();
|
void sortVector();
|
||||||
void sortDeque();
|
void sortDeque();
|
||||||
|
|
||||||
void printDeque() const;
|
|
||||||
void printVector() const;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue