2017-03-13 04:29:07 +00:00
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
//
|
|
|
|
// (C) Copyright Ion Gaztanaga 2016-2016. Distributed under the Boost
|
|
|
|
// Software License, Version 1.0. (See accompanying file
|
|
|
|
// LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
|
|
//
|
|
|
|
// See http://www.boost.org/libs/container for documentation.
|
|
|
|
//
|
|
|
|
//////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef BOOST_CONTAINER_DETAIL_IS_SORTED_HPP
|
|
|
|
#define BOOST_CONTAINER_DETAIL_IS_SORTED_HPP
|
|
|
|
|
|
|
|
#ifndef BOOST_CONFIG_HPP
|
|
|
|
# include <boost/config.hpp>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(BOOST_HAS_PRAGMA_ONCE)
|
|
|
|
# pragma once
|
|
|
|
#endif
|
|
|
|
|
|
|
|
namespace boost {
|
|
|
|
namespace container {
|
2018-08-21 16:04:16 +00:00
|
|
|
namespace dtl {
|
2017-03-13 04:29:07 +00:00
|
|
|
|
|
|
|
template <class ForwardIterator, class Pred>
|
|
|
|
bool is_sorted (ForwardIterator first, ForwardIterator last, Pred pred)
|
|
|
|
{
|
|
|
|
if(first != last){
|
|
|
|
ForwardIterator next = first;
|
|
|
|
while (++next != last){
|
|
|
|
if(pred(*next, *first))
|
|
|
|
return false;
|
|
|
|
++first;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
template <class ForwardIterator, class Pred>
|
|
|
|
bool is_sorted_and_unique (ForwardIterator first, ForwardIterator last, Pred pred)
|
|
|
|
{
|
|
|
|
if(first != last){
|
|
|
|
ForwardIterator next = first;
|
|
|
|
while (++next != last){
|
|
|
|
if(!pred(*first, *next))
|
|
|
|
return false;
|
|
|
|
++first;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
2018-08-21 16:04:16 +00:00
|
|
|
} //namespace dtl {
|
2017-03-13 04:29:07 +00:00
|
|
|
} //namespace container {
|
|
|
|
} //namespace boost {
|
|
|
|
|
|
|
|
#endif //#ifndef BOOST_CONTAINER_DETAIL_IS_SORTED_HPP
|