merge_job< T > Class Template Reference

Public Member Functions

 merge_job (boost::shared_array< T > data, unsigned int position, unsigned int length)
 
void run ()
 

Protected Attributes

boost::shared_array< T > m_data
 
unsigned int m_position
 
unsigned int m_length
 

Detailed Description

template<class T>
class merge_job< T >

Definition at line 85 of file mergesort.cpp.

Constructor & Destructor Documentation

template<class T >
merge_job< T >::merge_job ( boost::shared_array< T >  data,
unsigned int  position,
unsigned int  length 
)
inline

Definition at line 88 of file mergesort.cpp.

89  : m_data(data)
90  , m_position(position)
91  , m_length(length)
92  {
93  print("merge job created : " + to_string(m_position) +", "+ to_string(m_length) +"\n");
94  }
unsigned int m_position
Definition: mergesort.cpp:116
string to_string(const T &value)
Definition: mergesort.cpp:40
unsigned int m_length
Definition: mergesort.cpp:117
boost::shared_array< T > m_data
Definition: mergesort.cpp:115
void print(string text)
Definition: mergesort.cpp:33

Member Function Documentation

template<class T >
void merge_job< T >::run ( )
inline

Definition at line 96 of file mergesort.cpp.

97  {
98  print("merge job running : " + to_string(m_position) +", "+ to_string(m_length) +"\n");
99 
100  T* begin = m_data.get();
101  std::advance(begin, m_position);
102 
103  T* mid = m_data.get();
104  std::advance(mid, m_position + m_length/2);
105 
106  T* end = m_data.get();
108 
109  std::inplace_merge(begin, mid, end);
110 
111  print("\nmerge job finished: " + to_string(m_position) +", "+ to_string(m_length) +"\n");
112  }
unsigned int m_position
Definition: mergesort.cpp:116
string to_string(const T &value)
Definition: mergesort.cpp:40
T inplace_merge(T...args)
unsigned int m_length
Definition: mergesort.cpp:117
T advance(T...args)
auto begin(reverse_wrapper< T > &w)
Definition: reverse.h:48
boost::shared_array< T > m_data
Definition: mergesort.cpp:115
auto end(reverse_wrapper< T > &w)
Definition: reverse.h:50
void print(string text)
Definition: mergesort.cpp:33

Member Data Documentation

template<class T >
boost::shared_array<T> merge_job< T >::m_data
protected

Definition at line 115 of file mergesort.cpp.

template<class T >
unsigned int merge_job< T >::m_length
protected

Definition at line 117 of file mergesort.cpp.

template<class T >
unsigned int merge_job< T >::m_position
protected

Definition at line 116 of file mergesort.cpp.


The documentation for this class was generated from the following file: