File: mate-distance-stats.hpp

package info (click to toggle)
sra-sdk 3.0.3%2Bdfsg-6~deb12u1
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 165,852 kB
  • sloc: ansic: 374,775; cpp: 232,734; perl: 8,959; java: 6,253; sh: 6,032; python: 3,890; makefile: 1,046; yacc: 703; xml: 310; lex: 235
file content (20 lines) | stat: -rw-r--r-- 623 bytes parent folder | download | duplicates (7)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <map>

class MateDistanceStats {
public:
    typedef unsigned long distance_t;
    typedef unsigned long long count_t;
private:
    typedef std::map<distance_t, count_t> map_t;
    map_t map;
    static bool compare_count_descending(map_t::const_iterator a, map_t::const_iterator b) {
        return b->second < a->second;
    }
    static bool compare_distance(map_t::const_iterator a, map_t::const_iterator b) {
        return a->first < b->first;
    }
public:
    MateDistanceStats() {}
    void Count(distance_t const &d) { ++map[d]; }
    unsigned NthMostFrequent(unsigned N, distance_t result[N]) const;
};