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