14 #ifndef STXXL_ALGO_INMEMSORT_HEADER
15 #define STXXL_ALGO_INMEMSORT_HEADER
28 template <
typename ExtIterator,
typename StrictWeakOrdering>
31 typedef typename ExtIterator::block_type block_type;
33 STXXL_VERBOSE(
"stl_in_memory_sort, range: " << (last - first));
35 unsigned_type nblocks = last.bid() - first.bid() + (last.block_offset() ? 1 : 0);
40 for (i = 0; i < nblocks; ++i)
41 reqs[i] = blocks[i].read(*(first.bid() + i));
45 unsigned_type last_block_correction = last.block_offset() ? (block_type::size - last.block_offset()) : 0;
52 for (i = 0; i < nblocks; ++i)
53 reqs[i] = blocks[i].write(*(first.bid() + i));
60 #endif // !STXXL_ALGO_INMEMSORT_HEADER
void sort(ExtIterator first, ExtIterator last, StrictWeakOrdering cmp, unsigned_type M)
Sort records comparison-based, see stxxl::sort -- Sorting Comparison-Based.
void stl_in_memory_sort(ExtIterator first, ExtIterator last, StrictWeakOrdering cmp)
void check_sort_settings()
iterator begin()
return mutable iterator to first element
#define STXXL_BEGIN_NAMESPACE
element_iterator_traits< BlockType, SizeType >::element_iterator make_element_iterator(BlockType *blocks, SizeType offset)
Simpler non-growing vector without initialization.
void wait_all(RequestIterator reqs_begin, RequestIterator reqs_end)
Collection of functions to track statuses of a number of requests.
choose_int_types< my_pointer_size >::unsigned_type unsigned_type
#define STXXL_END_NAMESPACE