Classes | |
struct | has_size_and_data |
struct | has_size_and_data< T, std::void_t< decltype(std::declval< T >().size()), decltype(std::declval< T >().data())> > |
Functions | |
template<class C , class D > | |
auto | mergeSortedVectors (C &vecs, std::vector< D > &result) -> typename std::enable_if< has_size_and_data< C >::value, void >::type |
template<class C > | |
static void | mergeSortedVectors (const C *const *vecs, std::size_t size, std::vector< typename C::value_type > &result) |
Merge sorted vectors. More... | |
auto PLMD::mergeVectorTools::mergeSortedVectors | ( | C & | vecs, |
std::vector< D > & | result | ||
) | -> typename std::enable_if<has_size_and_data<C>::value, void>::type |
|
static |
Merge sorted vectors.
Takes a vector of pointers to containers and merge them. Containers should be already sorted. The content is appended to the result vector. Optionally, uses a priority_queue implementation.
local class storing the range of remaining objects to be pushed
check if this vector still contains something to be pushed
to allow using a priority_queu, which selects the highest element. we here (counterintuitively) define < as >
Hosted by GitHub | 1.8.17 |