You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
62 lines
1.7 KiB
62 lines
1.7 KiB
// |
|
//======================================================================= |
|
// Copyright 1997, 1998, 1999, 2000 University of Notre Dame. |
|
// Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek |
|
// |
|
// 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) |
|
//======================================================================= |
|
// |
|
#if __KCC |
|
namespace std { |
|
|
|
template <class RandomAccessIterator, class Distance> |
|
bool __is_heap(RandomAccessIterator first, RandomAccessIterator last, |
|
Distance*) |
|
{ |
|
const Distance n = last - first; |
|
|
|
Distance parent = 0; |
|
for (Distance child = 1; child < n; ++child) { |
|
if (first[parent] < first[child]) |
|
return false; |
|
if ((child & 1) == 0) |
|
++parent; |
|
} |
|
return true; |
|
} |
|
|
|
template <class RandomAccessIterator> |
|
inline bool is_heap(RandomAccessIterator first, RandomAccessIterator last) |
|
{ |
|
return __is_heap(first, last, distance_type(first)); |
|
} |
|
|
|
|
|
template <class RandomAccessIterator, class Distance, class StrictWeakOrdering> |
|
bool __is_heap(RandomAccessIterator first, RandomAccessIterator last, |
|
StrictWeakOrdering comp, |
|
Distance*) |
|
{ |
|
const Distance n = last - first; |
|
|
|
Distance parent = 0; |
|
for (Distance child = 1; child < n; ++child) { |
|
if (comp(first[parent], first[child])) |
|
return false; |
|
if ((child & 1) == 0) |
|
++parent; |
|
} |
|
return true; |
|
} |
|
|
|
template <class RandomAccessIterator, class StrictWeakOrdering> |
|
inline bool is_heap(RandomAccessIterator first, RandomAccessIterator last, |
|
StrictWeakOrdering comp) |
|
{ |
|
return __is_heap(first, last, comp, distance_type(first)); |
|
} |
|
|
|
} |
|
#endif
|
|
|