diff --git a/cpp09/ex02/main.cpp b/cpp09/ex02/main.cpp index f099ffc..b1b0d36 100644 --- a/cpp09/ex02/main.cpp +++ b/cpp09/ex02/main.cpp @@ -6,11 +6,12 @@ /* By: rparodi +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2025/05/01 14:45:40 by rparodi #+# #+# */ -/* Updated: 2025/05/07 12:04:00 by rparodi ### ########.fr */ +/* Updated: 2025/05/07 14:51:45 by rparodi ### ########.fr */ /* */ /* ************************************************************************** */ #include "PmergeMe.hpp" +#include int check_input(int argc, char **argv) { for (size_t i = 1; i < static_cast(argc); i++) { @@ -22,19 +23,6 @@ int check_input(int argc, char **argv) { return (0); } -std::vector convert_in_vector(int argc, char **argv) { - std::vector vec; - for (size_t i = 1 ; i < static_cast(argc); i++) { - errno = 0; - int value = std::strtol(argv[i], nullptr, 10); - if (errno == ERANGE || value < 0) { - std::cerr << CLR_RED << "Error: I don't accept number over INT_MAX" << CLR_RESET << std::endl; - std::exit(1); - } - vec.push_back(value); - } - return vec; -} int main(int argc, char **argv) { if (DEBUG) @@ -53,6 +41,30 @@ int main(int argc, char **argv) { std::cerr << CLR_BLUE << "\tValue of args: [" << argv[check] << "]" << CLR_RESET << std::endl; return 1; } - convert_in_vector(argc, argv); + struct timeval start, end; + + std::cout << CLR_YELLOW << "\tUsing std::" << CLR_GOLD << "vector" << CLR_RESET << std::endl; + std::vector vec = convert >(argc, argv); + print_container(vec, false); + gettimeofday(&start, NULL); + FordJohnson(vec); + gettimeofday(&end, NULL); + print_container(vec, false); + long vecTime = (end.tv_sec - start.tv_sec) * 1000000 + (end.tv_usec - start.tv_usec); + + std::cout << std::endl << std::endl; + std::cout << CLR_YELLOW << "\tUsing std::" << CLR_GOLD << "deque" << CLR_RESET << std::endl; + std::deque deq = convert >(argc, argv); + print_container(deq, false); + gettimeofday(&start, NULL); + FordJohnson(deq); + gettimeofday(&end, NULL); + print_container(deq, true); + long deqTime = (end.tv_sec - start.tv_sec) * 1000000 + (end.tv_usec - start.tv_usec); + + std::cout << std::endl << CLR_YELLOW << "\tTime for Ford-Johnson" << CLR_RESET << std::endl; + std::cout << CLR_YELLOW << "Time for vector" << " : " << CLR_GOLD << vecTime << CLR_YELLOW << " us" << CLR_RESET << std::endl; + std::cout << CLR_YELLOW << "Time for deque"<< " : " << CLR_GOLD << deqTime << CLR_YELLOW << " us" << CLR_RESET << std::endl; + return 0; }