-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathRouteSorter.cpp
More file actions
46 lines (37 loc) · 889 Bytes
/
Copy pathRouteSorter.cpp
File metadata and controls
46 lines (37 loc) · 889 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include "RouteSorter.h"
#include <algorithm>
using namespace std;
bool RouteSorter::compare(
const Route& a,
const Route& b)
{
//------------------------------------
// Higher priority wins
//------------------------------------
if(a.priority != b.priority)
{
return a.priority > b.priority;
}
//------------------------------------
// Longer route wins
//------------------------------------
if(a.segments.size() != b.segments.size())
{
return a.segments.size() >
b.segments.size();
}
//------------------------------------
// Tie breaker
//------------------------------------
return a.originalPattern <
b.originalPattern;
}
void RouteSorter::sort(
vector<Route>& routes)
{
std::sort(
routes.begin(),
routes.end(),
compare
);
}