main.cpp
 1  /* ************************************************************************** */
 2  /*                                                                            */
 3  /*                                                        :::      ::::::::   */
 4  /*   main.cpp                                           :+:      :+:    :+:   */
 5  /*                                                    +:+ +:+         +:+     */
 6  /*   By: gychoi <gychoi@student.42seoul.kr>         +#+  +:+       +#+        */
 7  /*                                                +#+#+#+#+#+   +#+           */
 8  /*   Created: 2023/12/25 22:52:15 by gychoi            #+#    #+#             */
 9  /*   Updated: 2023/12/30 17:52:58 by gychoi           ###   ########.fr       */
10  /*                                                                            */
11  /* ************************************************************************** */
12  
13  #include <deque>
14  #include <iostream>
15  #include <list>
16  #include <typeinfo>
17  #include <vector>
18  
19  #include "easyfind.hpp"
20  
21  template <typename T>
22  void	display(T const& container)
23  {
24  	typename T::const_iterator	it;
25  	for (it = container.begin(); it != container.end(); it++)
26  	{
27  		if (it == container.begin())
28  		{
29  			std::cout << *it;
30  		}
31  		else
32  		{
33  			std::cout << ", " << *it;
34  		}
35  	}
36  	std::cout << std::endl;
37  }
38  
39  int	main()
40  {
41  	try
42  	{
43  		std::cout << "Testing Vector..." << std::endl;
44  
45  		std::vector<int>	vec;
46  
47  		for (size_t i = 0; i < 5; i++)
48  		{
49  			vec.push_back(i);
50  		}
51  
52  		display(vec);
53  
54  		std::vector<int>::iterator	it = easyfind(vec, 2);
55  		std::cout << "find: " << *it << std::endl;
56  	}
57  	catch (std::exception& e)
58  	{
59  		std::cout << e.what() << std::endl;
60  	}
61  	try
62  	{
63  		std::cout << "Testing List..." << std::endl;
64  
65  		std::list<int>	lst;
66  
67  		for (size_t i = 0; i < 5; i++)
68  		{
69  			lst.push_back(i * -1);
70  		}
71  
72  		display(lst);
73  
74  		std::list<int>::iterator	it = easyfind(lst, 2);
75  		std::cout << "find: " << *it << std::endl;
76  	}
77  	catch (std::exception& e)
78  	{
79  		std::cout << e.what() << std::endl;
80  	}
81  	try
82  	{
83  		std::cout << "Testing Const Deque..." << std::endl;
84  
85  		int	tmp[] = { 1, 2, 3, 4, 5 };
86  		std::deque<int> const	cdq(tmp, tmp + sizeof(tmp)/sizeof(tmp[0]));
87  
88  		display(cdq);
89  
90  		std::deque<int>::const_iterator	cit = easyfind(cdq, -2);
91  		std::cout << "find: " << *cit << std::endl;
92  	}
93  	catch (std::exception& e)
94  	{
95  		std::cout << e.what() << std::endl;
96  	}
97  
98  	return 0;
99  }