+
+ //add in any ties from smaller
+ while (iSmaller < smaller.size()) {
+ if (smallerScores[iSmaller] == lastSmaller) {
+ it = seen.find(smaller[iSmaller]);
+
+ if (it == seen.end()) {
+ mergedResults.push_back(smaller[iSmaller]);
+ seen[smaller[iSmaller]] = smaller[iSmaller];
+ }
+ }
+ else { break; }
+ iSmaller++;
+ }
+
+ lasti++;
+ //add in any ties from larger
+ while (lasti < larger.size()) {
+ if (largerScores[lasti] == lastLarger) { //is it a tie
+ it = seen.find(larger[lasti]);
+
+ if (it == seen.end()) { //we haven't already seen it
+ mergedResults.push_back(larger[lasti]);
+ seen[larger[lasti]] = larger[lasti];
+ }
+ }
+ else { break; }
+ lasti++;
+ }
+
+ numWanted = seen.size();
+