Fråga : Hur jag får från denna kodifierar till önskat mitt tillverkat?

Denna är INTE en akademiker övar, bara en pröva faktisk förmiddag för problem I för att lösa.  gruppen för

A av deltagare (A-G) är förlovad i en kasta konkurrens att se hur långt de kan kasta en anmärka (som mätas i fot).  Förmiddag som I angå med att identifiera TIES distanserar in, kastat mellan olika deltagare.  Det är, om 2 eller mer deltagare har en tie som jag önskar att göras medveten av den.  

Please ser fäste code.

From detta att kodifiera mig önskar att den tillverkade skärmen ska se likt denna: fot för
44: C E
33 fot: B D
22 fot: A C, D, F

Given att vi har nu iterator det… hur jag får mitt önskat tillverkat?
> för
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:
47:
48:
49:
50:
51:
52:
53:
54:
55:
" codeBody " " för >#include för class= " för #include #include #include using namespace std; struct StudentAttempt { int distanserar; stränga studentName; }; boolcmpAttempts (lämnade StudentAttempt, högra StudentAttempt) { om (left.distance < right.distance) { återgångt true; } annars, om (left.distance-== right.distance) { om (left.studentName < right.studentName) { återgångt true; } annars återgångt falskt; } annars återgångt falskt; } isDistEqual bool (lämnade StudentAttempt, högra StudentAttempt) { gå tillbaka (left.distance-== right.distance && left.studentName! = right.studentName); } huvudsaklig int () { StudentAttempt throwDist [] = { {50, ”A”}, {22, ”A”}, {16, ”B”}, {44, ”C”}, {33, ”D”}, {34, ”E”}, {22, ”F”}, {21, ”G”}, {49, ”A”}, {5, ”B”}, {2, ”C”}, {22, ”A”}, {33, ”B”}, {22, ”C”}, {22, ”D”}, {44, ”E”}, }; int len = sizeof) (för throwDist/sizeof (throwDist [0]); vectordist (throwDisten, throwDist + len); vector:: iterator det = dist.begin (); sortera (dist.begin (), dist.end (), cmpAttempts); för (; det! = dist.end (); it++) { cout << setw (2) << (*it) .distance << ”fot: ” << (*it) .studentName << endl; } det = adjacent_find (dist.begin (), dist.end () som, är isDistEqual); }
" klar "

Svar : Hur jag får från denna kodifierar till önskat mitt tillverkat?

REKO nästa försök; nolla)

Denna tid vi ska avlägsnar distanserar oss behandlade redan:
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:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
#include  
#include  
#include  
#include  
#include  
#include  
#include  

using namespace std;

struct StudentAttempt
{
   int distanserar;
   stränga studentName;
};

boolcmpDist (lämnade StudentAttempt, högra StudentAttempt) {
   om (left.distance-== right.distance) {
      återgångt true;
   }

  gå falskt tillbaka;
}

boolcmpAttempts (lämnade StudentAttempt, högra StudentAttempt) {
   om (left.distance < right="">& v, constStudentAttempt& sa, stringstream& ss) {

  vektor:: const_iterator i = v.begin ();
  size_t sz = 0;

  stunder (I! = v.end ()) {

    om (isDistEqual (*ien, sa)) {
    
      ss- <>studentName;
      ++sz;
    }

    ++i;
  }

  återgång sz;
}

huvudsaklig int () {

   StudentAttempt throwDist [] = {
      {50, ”A”},      {22, ”A”},      {16, ”B”},      {44, ”C”},
      {33, ”D”},      {34, ”E”},      {22, ”F”},      {21, ”G”},
      {49, ”A”},      {5, ”B”},      {2, ”C”},      {22, ”A”},
      {33, ”B”},      {22, ”C”},      {22, ”D”},      {44, ”E”},
   };

   uppsättningen behandlade;

   int len = sizeof) (för throwDist/sizeof (throwDist [0]);
   vektor dist (throwDisten, throwDist + len);
   vektor:: iterator det = dist.begin ();

   sortera (dist.begin (), dist.end (), cmpAttempts);
   //unique (dist.begin (), dist.end (), cmpDist);


   för (; det! = dist.end (); it++) {

      stringstream ss;

      para:: iterator bool> p = handled.insert (it->distance);

      om (! p.second) fortsätter; // behandlade redan

      om (0  < printAllEqual="">
           
Andra lösningar  
 
programming4us programming4us