reverse compil
This commit is contained in:
parent
9656f9e55a
commit
f4c6e7db4b
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/11/19 05:07:29 by apommier #+# #+# */
|
/* Created: 2022/11/19 05:07:29 by apommier #+# #+# */
|
||||||
/* Updated: 2022/11/19 05:09:05 by apommier ### ########.fr */
|
/* Updated: 2022/11/22 06:28:50 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -18,10 +18,10 @@ namespace ft
|
|||||||
struct iterator_traits {
|
struct iterator_traits {
|
||||||
|
|
||||||
typedef typename Iterator::iterator_category iterator_category;
|
typedef typename Iterator::iterator_category iterator_category;
|
||||||
typedef typename Iterator::value_type value_type;
|
typedef typename Iterator::value_type value_type;
|
||||||
typedef typename Iterator::difference_type difference_type;
|
typedef typename Iterator::difference_type difference_type;
|
||||||
typedef difference_type distance_type;
|
typedef difference_type distance_type;
|
||||||
typedef typename Iterator::pointer pointer;
|
typedef typename Iterator::pointer pointer;
|
||||||
typedef typename Iterator::reference reference;
|
typedef typename Iterator::reference reference;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/10/30 16:14:35 by apommier #+# #+# */
|
/* Created: 2022/10/30 16:14:35 by apommier #+# #+# */
|
||||||
/* Updated: 2022/11/21 15:54:44 by apommier ### ########.fr */
|
/* Updated: 2022/11/22 08:10:53 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -40,20 +40,32 @@ namespace ft
|
|||||||
|
|
||||||
random_access_iterator(){ _ptr = NULL;}
|
random_access_iterator(){ _ptr = NULL;}
|
||||||
random_access_iterator(pointer ptr){ _ptr = ptr;}
|
random_access_iterator(pointer ptr){ _ptr = ptr;}
|
||||||
random_access_iterator(random_access_iterator const &cpy) {*this = cpy;}
|
random_access_iterator(const random_access_iterator &cpy) {*this = cpy;}
|
||||||
|
|
||||||
~random_access_iterator(){}
|
~random_access_iterator(){}
|
||||||
|
|
||||||
random_access_iterator &operator=(random_access_iterator const &cpy)
|
// random_access_iterator &operator=(const random_access_iterator &cpy)
|
||||||
|
// {
|
||||||
|
// _ptr = cpy._ptr;
|
||||||
|
// return (*this);
|
||||||
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
operator random_access_iterator<const value_type>() const
|
||||||
{
|
{
|
||||||
_ptr = cpy._ptr;
|
return (random_access_iterator<const value_type>(_ptr));
|
||||||
|
}
|
||||||
|
|
||||||
|
random_access_iterator &operator=(random_access_iterator const &rhs)
|
||||||
|
{
|
||||||
|
if (this != &rhs)
|
||||||
|
{
|
||||||
|
this->_ptr = rhs._ptr;
|
||||||
|
}
|
||||||
return (*this);
|
return (*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
operator random_access_iterator<value_type const>() const
|
|
||||||
{
|
|
||||||
return (random_access_iterator<value_type const>(_ptr));
|
|
||||||
}
|
|
||||||
// random_access_iterator &operator=(pointer &ptr)
|
// random_access_iterator &operator=(pointer &ptr)
|
||||||
// {
|
// {
|
||||||
// _ptr = ptr;
|
// _ptr = ptr;
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/11/19 05:14:31 by apommier #+# #+# */
|
/* Created: 2022/11/19 05:14:31 by apommier #+# #+# */
|
||||||
/* Updated: 2022/11/22 06:15:05 by apommier ### ########.fr */
|
/* Updated: 2022/11/22 08:23:53 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -42,30 +42,43 @@ namespace ft
|
|||||||
reverse_iterator() : _Ite() {}
|
reverse_iterator() : _Ite() {}
|
||||||
explicit reverse_iterator (iterator_type it) { _Ite = iterator_type(it); }
|
explicit reverse_iterator (iterator_type it) { _Ite = iterator_type(it); }
|
||||||
|
|
||||||
|
//reverse_iterator(const reverse_iterator<It> &rev_it) : _Ite(rev_it.base()) {}
|
||||||
|
|
||||||
template<typename It>
|
template<typename It>
|
||||||
reverse_iterator(const reverse_iterator<It> &rev_it)
|
reverse_iterator(const reverse_iterator<It> &rev_it)
|
||||||
{
|
{
|
||||||
_Ite = rev_it.base();
|
*this = rev_it;
|
||||||
}
|
|
||||||
|
|
||||||
reverse_iterator &operator=(reverse_iterator const &cpy)
|
|
||||||
{
|
|
||||||
_Ite = iterator_type(cpy._Ite);
|
|
||||||
return (*this);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~reverse_iterator(){}
|
virtual ~reverse_iterator(){}
|
||||||
|
// reverse_iterator(const reverse_iterator<It> &rev_it)
|
||||||
|
// {
|
||||||
|
// _Ite = It(rev_it.base());
|
||||||
|
// }
|
||||||
|
// operator reverse_iterator<Iter>() const
|
||||||
|
// {
|
||||||
|
// return (reverse_iterator< Iter const>(_Ite));
|
||||||
|
// }
|
||||||
|
|
||||||
|
template<typename It>
|
||||||
|
reverse_iterator operator=(reverse_iterator<It> const &cpy)
|
||||||
|
{
|
||||||
|
_Ite = cpy.base();
|
||||||
|
return (*this);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//---------------------------------------
|
//---------------------------------------
|
||||||
//-------------COMPARAISON---------------
|
//-------------COMPARAISON---------------
|
||||||
//---------------------------------------
|
//---------------------------------------
|
||||||
|
|
||||||
bool operator== (reverse_iterator const &rhs) const { return (_Ite == rhs._Ite); }
|
// bool operator== (reverse_iterator const &rhs) const { return (_Ite == rhs.base()); }
|
||||||
bool operator!= (reverse_iterator const &rhs) const { return (_Ite != rhs._Ite); }
|
// bool operator!= (reverse_iterator const &rhs) const { return (_Ite != rhs.base()); }
|
||||||
bool operator< (reverse_iterator const &rhs) const { return (_Ite > rhs._Ite); }
|
// bool operator< (reverse_iterator const &rhs) const { return (_Ite > rhs.base()); }
|
||||||
bool operator<= (reverse_iterator const &rhs) const { return (_Ite >= rhs._Ite); }
|
// bool operator<= (reverse_iterator const &rhs) const { return (_Ite >= rhs.base()); }
|
||||||
bool operator> (reverse_iterator const &rhs) const { return (_Ite < rhs._Ite); }
|
// bool operator> (reverse_iterator const &rhs) const { return (_Ite < rhs.base()); }
|
||||||
bool operator>= (reverse_iterator const &rhs) const { return (_Ite <= rhs._Ite); }
|
// bool operator>= (reverse_iterator const &rhs) const { return (_Ite <= rhs.base()); }
|
||||||
|
|
||||||
//---------------------------------------
|
//---------------------------------------
|
||||||
//-------------INCREMENTERS--------------
|
//-------------INCREMENTERS--------------
|
||||||
@ -154,6 +167,26 @@ namespace ft
|
|||||||
//--------------GET----------------
|
//--------------GET----------------
|
||||||
//---------------------------------
|
//---------------------------------
|
||||||
|
|
||||||
iterator_type base() const { return iterator_category(_Ite); }
|
iterator_type base() const { return _Ite; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
template<class Ite1, class Ite2>
|
||||||
|
bool operator== (const reverse_iterator<Ite1> &lhs, const reverse_iterator<Ite2> &rhs) { return (lhs.base() == rhs.base()); }
|
||||||
|
|
||||||
|
template<class Ite1, class Ite2>
|
||||||
|
bool operator!= (const reverse_iterator<Ite1> &lhs, const reverse_iterator<Ite2> &rhs) { return (lhs.base() != rhs.base()); }
|
||||||
|
|
||||||
|
template<class Ite1, class Ite2>
|
||||||
|
bool operator< (const reverse_iterator<Ite1> &lhs, const reverse_iterator<Ite2> &rhs) { return (lhs.base() > rhs.base()); }
|
||||||
|
|
||||||
|
template<class Ite1, class Ite2>
|
||||||
|
bool operator<= (const reverse_iterator<Ite1> &lhs, const reverse_iterator<Ite2> &rhs) { return (lhs.base() >= rhs.base()); }
|
||||||
|
|
||||||
|
template<class Ite1, class Ite2>
|
||||||
|
bool operator> (const reverse_iterator<Ite1> &lhs, const reverse_iterator<Ite2> &rhs) { return (lhs.base() < rhs.base()); }
|
||||||
|
|
||||||
|
template<class Ite1, class Ite2>
|
||||||
|
bool operator>= (const reverse_iterator<Ite1> &lhs, const reverse_iterator<Ite2> &rhs) { return (lhs.base() <= rhs.base()); }
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/10/12 19:46:32 by apommier #+# #+# */
|
/* Created: 2022/10/12 19:46:32 by apommier #+# #+# */
|
||||||
/* Updated: 2022/11/21 18:48:56 by apommier ### ########.fr */
|
/* Updated: 2022/11/22 07:46:32 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -40,7 +40,7 @@ class vector
|
|||||||
typedef T* pointer;
|
typedef T* pointer;
|
||||||
typedef const T* const_pointer;
|
typedef const T* const_pointer;
|
||||||
typedef ft::random_access_iterator<value_type> iterator;
|
typedef ft::random_access_iterator<value_type> iterator;
|
||||||
typedef ft::random_access_iterator<const value_type> const_iterator;
|
typedef ft::random_access_iterator< value_type const> const_iterator;
|
||||||
typedef ft::reverse_iterator<iterator> reverse_iterator;
|
typedef ft::reverse_iterator<iterator> reverse_iterator;
|
||||||
typedef ft::reverse_iterator<const_iterator> const_reverse_iterator;
|
typedef ft::reverse_iterator<const_iterator> const_reverse_iterator;
|
||||||
typedef std::ptrdiff_t difference_type;
|
typedef std::ptrdiff_t difference_type;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user