Frage : Wie würde ich zu CString ausgeben, anstatt, stringstream SS zu benutzen?

Ich habe irgendeinen Code unten.  Was er tut, ist dieses:  Es gibt Kursteilnehmer AG, die an einem Wettbewerb teilnehmen, einen Gegenstand zu starten, insoweit sie können (gemessen in den Füßen).  Sie gegeben mehrfache Versuche und das Programm folgend ist findet alle Fälle, wenn es die RIEGEL im Abstand geworfen gibt, zwischen 2 oder verschiedenere Kursteilnehmer und Ausgänge es zum Schirm wie so:

44 Füße: C, E
33 Füße: B, D
22 Füße: A, C, D, F

The Programm bearbeitet großes.  Jetzt was ich tun möchte, ist, anstatt auszugeben zum Schirm using stringstream, das ich den Ausgang in einem CString enthalten werden wünsche, das csOutput genannt.  Der Grund für dieses ist, dass ich das CString nehme und es mit irgendeinem anderem bereits schriftlichem Code verwende, den ich habe.  So wie ausgebe ich zum CString csOutput be?
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:
6:
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:
#include 
#include 
#include 
#include 
#include 
#include 
#include 

using namespace-Geschlechtskrankheit;

struct StudentAttempt
{
   int-Abstand;
   Schnur studentName;
};

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

bool isDistEqual (StudentAttempt gelassen, StudentAttempt Recht) {
   zurückgehen (left.distance == right.distance
      && left.studentName! = right.studentName);
}

size_t printAllEqual (const vector& V, const StudentAttempt& sa, stringstream& SS) {

  vector:: const_iterator I = v.begin ();
  size_t SZ = 0;

  während (i! = v.end ()) {

    wenn (isDistEqual (*i, sa)) {
    
      SS << i->studentName;
      ++sz;
    }

    ++i;
  }

  Rückholsz;
}

int-Hauptleitung () {

   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“},
   };

   set behandelt;

   int len = sizeof (throwDist)/sizeof (throwDist [0]);
   vector dist (throwDist, throwDist + len);
   vector:: iterator es = dist.begin ();

   Art (dist.begin (), dist.end (), cmpAttempts);

   für (; es! = dist.end (); it++) {

      stringstream SS;

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

      wenn (! p.second) fortfahren ren; // bereits behandelt

      wenn (0 < printAllEqual (dist, *it, SS)) 
        cout << setw (2) << (*it) .distance 
           << „Füße:  “ << (*it) .studentName << ss.str () << endl;
   }

   
}

Antwort : Wie würde ich zu CString ausgeben, anstatt, stringstream SS zu benutzen?

Gut obwohl ich noch STL über Kraftstoffregler empfehlen, kann dieses auch getan werden, z.B.
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:
6:
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:
#include  
#include  
#include  
#include  
#include  
#include  

using namespace-Geschlechtskrankheit;

struct StudentAttempt
{
   int-Abstand;
   Schnur studentName;
};

bool cmpAttempts (StudentAttempt gelassen, StudentAttempt Recht) {
   wenn (left.distance < right="">u. v, const StudentAttempt& sa, CString& str) {

  Vektor:: const_iterator I = v.begin ();
  size_t SZ = 0;

  während (i! = v.end ()) {

    wenn (isDistEqual (*i, sa)) {
    
      str += i->studentName;
      ++sz;
    }

    ++i;
  }

  Rückholsz;
}

int-Hauptleitung () {

   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“},
   };

   Satz behandelte;

   int len = sizeof (throwDist)/sizeof (throwDist [0]);
   Vektor dist (throwDist, throwDist + len);
   Vektor:: iterator es = dist.begin ();

   Art (dist.begin (), dist.end (), cmpAttempts);

   für (; es! = dist.end (); it++) {

      CString str;

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

      wenn (! p.second) fortfahren ren; // behandelte bereits

      wenn (0  < printAllEqual="">
           
Weitere Lösungen  
 
programming4us programming4us