Gast
#5510219
Hallo. Ich möchte einen Vektor in C++ mittels Operatorüberladung ausgeben weis aber nicht genau wie. Wie würdet ihr das machen?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
Naja und das geht so nicht.
|
Anzeige
|
Vector ausgeben
Gast
#5510219
Hallo. Ich möchte einen Vektor in C++ mittels Operatorüberladung ausgeben weis aber nicht genau wie. Wie würdet ihr das machen?
Naja und das geht so nicht. Das was du da programmiert hast ist eine Endlosschleife. In dem << Operator rufst du wieder diesen Operator auf. Die Überladung müsste so passen, aber der vector sollte besser als const Referenz übergeben werden. In der Funktion musst du dann über die Elemente des Vektors iterieren und diese dann auf den Stream schreiben. Trennzeichen und Formatierung der Ausgabe kannst du dann auch festlegen.
Gast
#5510277
Hast du mir ein Codebeispiel? Falls das Hausaufgaben sind hat dir mkbit den Weg aufgezeigt. Wenn du einfach nur eine funktionierende Lösung brauchst schau mal hier: https://louisdx.github.io/cxx-prettyprint/ Damit funktioniert es einfach. Beispiel von der genannten Seite:
Gast
#5510410
M.K. B. schrieb: > In der Funktion musst du dann über die > Elemente des Vektors iterieren
Danke, habe es kapiert, man kann quasi endlos in den ostream schreiben, das mache ich dann mit der Iteration, zum Schluss gebe ich dann den ostream zurück.
Gast
#5510411
Dirk K. schrieb: > Wenn du einfach nur eine funktionierende Lösung brauchst schau mal hier: > https://louisdx.github.io/cxx-prettyprint/ Damit funktioniert es > einfach. Danke, es ging mir schon darum es zu verstehen. Es waren keine Hausaufgaben sondern eine Übungsaufgabe eines Tutorials. Habe es jetzt verstanden.
Gast
#5510412
humpen schrieb: > for(int i=0; i<ages.size(); ++i) > os << ages[i] << endl; Eigentlich nimmt man dafür einen Iterator. Wäre „sauberer“. Grüsse, René René H. schrieb: > Eigentlich nimmt man dafür einen Iterator. Wäre „sauberer“. Oder seit C++11 ein range based for. Iterator geht aber natürlich auch in C++11 noch.
M.K. B. schrieb: > René H. schrieb: >> Eigentlich nimmt man dafür einen Iterator. Wäre „sauberer“. > > Oder seit C++11 ein range based for. Iterator geht aber natürlich auch > in C++11 noch. Eigentlich gibt es für so etwas output iteratoren:
Hallo, Humpen schrieb: > Hallo. Ich möchte einen Vektor in C++ mittels Operatorüberladung > ausgeben weis aber nicht genau wie. Wie würdet ihr das machen? > vector<int> ages{100}; nur ganz leise und am Rande bemerkt, bist Du Dir sicher, dass das tut, was Du denkst, was es tut? Der Vektor hat danach die Größe 1 und ages[0] liefert 100. Wolltest Du das? vlg Timm
Gast
#5510533
Timm R. schrieb: > Der Vektor hat danach die Größe 1 und ages[0] liefert 100. > Wolltest Du das? Mir ging es nur darum den Vektor per Operatorüberladung auszugeben, dass er dabei nur ein Element besitzt ist ok. Habe später den Code abgeändert als es - dank den vielen Hilfestellungen - richtig geklappt hat. Danke aber für den Hinweis. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|