STL vector ausgeben
-
Hallo zusammen,
ich habe noch nie mit der STL gearbeitet und fange gerade damit an. Wann soll ich einen Vektor so ausgeben:
std::vector<string> num; //.... for(int i = 0; i < num.length(); i++) cout << num[i] + ' - ' << endl;und wann mit einem Iterator? Gibt es irgendwelche Vorteile?
Vielen Dank
lg, freakC++
-
Doch, das kannst du. Guck dir deine Fehlermeldung genauer an, du hast etwas ganz anderes falsch gemacht. Tipp: '"
edit: Jetzt hast du deine frage geändert, während ich geantwortet habe :p . Iterator vs []: Der Iterator ist ein allgemeineres Konzept, wenn du Iteratoren benutzt, kannst du den unterliegenden Container einfach austauschen ohne irgendwo im Programm etwas ändern zu müssen (falls du ein paar geschickte typedefs gesetzt hast).
Der Operator [] ist hingegen eher eine Spezialität von vector(und einigen der anderen Container, aber nicht von allen!), weil er den wahlfreien Zugriff erlaubt (d.h. Zugriffe die nicht in der Reihenfolge stattfinden wie die Elemente im vector liegen). Benutze ihn, wenn du ihn brauchst. Wenn du ohnehin durch alle Elemente iterierst, dann benutze lieber den Iterator, weil du dann keine spezielle Eigenschaft des vectors ausnutzt und somit flexibler bist.
-
Stand da vor ein paar Sekunden nicht noch ein komplett anderer Beitrag?

Ob man Iteratoren oder einen Index verwendet, hängt ganz von der Anwendung ab. In diesem präsentierten Fall ist es reine Geschmacksache.
Übrigens,std::vectorhat keinelengthMethode. Du meinst wohl diesizeMethode.Grüssli
-
Hallo zusammen,
ja, ich habe meine Frage geändert, weil sich alles von selbst geklärt hat. Dennoch interessierte mich die Fragestellung Iterator vs. []. Danke für die Antworten. Jetzt verwende ich erstmal []!
@Dravere: Stimmt! Ich ändere es schnell

Vielen Dank
lg, freakC++
-
freakC++ schrieb:
@Dravere: Stimmt! Ich ändere es schnell

Das ist nicht so schön. Denn wenn nun ein neuer Leser daherkommt und Draveres Beitrag liest, wird er sich erst wundern, da du im ersten Post überhaupt kein length() verwendet hast, bevor er deine Erklärung liest, dass du den ersten Post verändert hast.
-
@Michael E,: Stimmt! Ich ändere es schnell
