INNER CODE UNIT · C++
comparer
refresh-bio/FAMSA · src/msa.cpp:251
auto comparer = [](const CSequence* a, const CSequence* b)->bool {
return a->length > b->length ||
(a->length == b->length && std::lexicographical_compare(a->data, a->data + a->data_size, b->data, b->data + b->data_size));
};
std::stable_sort(seq_ptrs.begin(), seq_ptrs.end(), comparer);
uint32_t max_seq_len = seq_ptrs[0]->length;
std::vector<CSequence> output;
output.reserve(sequences.size());
// mark already allocated memory area to free
auto mma = sequences.front().get_mma();
if (mma) {
mma->freeze();
}
// put sequences in the ordered collection with length extension