Frage : Ich benötige Hilfe beim Sortieren eines Vektors.

Dieses ist EINE NICHT akademische Übung aber ein tatsächliches Problem, die ich mit festhalte.  Hoffnungsvoll kann ich dieses erhalten heute gelöst.

A Bündel Kursteilnehmer teilnehmen an einem Wettbewerb mer, in dem sie einen Gegenstand bis zu ihnen starten müssen können, überall von 0 - 100 Fuß.  Jeder Kursteilnehmer erhält 4 Versuche.  Die Abstände notiert im struct unten zusammen mit ihrer Kursteilnehmer Identifikation-Zahl (die z.Z. von 1-27 reicht).   Ich habe bereits einen Vektor der StudentAttempt structs, die vLaunches.

QUESTION genannt: Wie sortiere ich den Vektor so, dass ich alle RIEGEL zwischen Kursteilnehmern finde?  Das heißt, möchte ich wissen, wann 2 oder mehr Kursteilnehmer Produkteinführungen vom genauen der gleiche Abstand erzielt.  Ich wünsche den Ausgang zum Schirm Gleiches schauen:

TIES:
44feet: 1, 16, (dieses anzeigt diesen Kursteilnehmer ID# 1, 16, 33 alle gehabte Produkteinführungen von genau 44 Fuß),
32feet: 23, 27
19feet: 2, 3, 9, 14, 17

I morgens gehend, Hilfe beim Verständnis der cmpAttempts Funktion zu benötigen, die geschrieben von einem anderen Gefährte-EE-Mitglied….
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:
struct StudentAttempt
{
    int StudentID
    int-Abstand
}

bool cmpAttempts (StudentAttempt gelassen, StudentAttempt Recht) {
   wenn (left.distance < right.distance) {
      Rückhol ausrichten;
   }
   sonst, wenn (left.distance == right.distance) {
      wenn (left.StudentID < right.StudentID) {
         Rückhol ausrichten;
      }
      sonst
         Rückholfalsches;
   }
   sonst
      Rückholfalsches;
}

im MAIN….
Vektor vLaunches;

Art (vLaunches.begin (), vLaunches.end (), cmpAttempts);
Related Lösungen: How tun i-Art ein Vektor?

Antwort : Ich benötige Hilfe beim Sortieren eines Vektors.

Using den Code im in Verbindung stehenden Pfosten, betrachten, was geschieht, wenn adjacent_find left= sendet (22, A) und right= (22, A) zu isDistEqual (). Die Abstände zusammenpassen npassen, aber die Kursteilnehmer Identifikation zusammenpassen nicht und so
       left.studentName! = right.studentName
ist falsch. So übersprungen dieses Paar durch adjacent_find.

So wissen Sie nicht sogar vom adjacent_find, das dort sogar zwei Einträge = waren (22, A). So müssen Sie nicht um das Erhalten von 22 Fuß sorgen: A, A, C, D seit 22, A gesehen nur einmal.
Weitere Lösungen  
 
programming4us programming4us