Komplette vectoren ausgeben...
-
Hallo!
Ich experimentiere zZ ein bisschen mit vectoren rum und hab mühsam gelernt *g* einen bestimmten Teil des Inhalts auzuwählen (vector[position]). Wie kann ich aber de kompletten vector "weiterverarbeiten", zB ausgeben:#include<iostream> #include<vector> #include<string> #include<fstream> using namespace std; int number = 0; int main(){ cout << "Stellen: "; int stellen = 0, null = "0"; vector<int> v; cin >> stellen; for (int i = 1; i < stellen; i++) v.push_back(null); cout << :confused: :confused: << endl; }
Danke für jede Hilfe
-
Mit copy
-
#include <algorithm> #include <iostream> #include <iterator> #include <vector> int main() { std::vector<int> v; v.push_back(1); v.push_back(2); v.push_back(3); std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " ")); std::cout << std::endl; }
-
Cool
Danke! Das geht! Aber leider versteh ich nicht warum das funktioniert:
std::copy(v.begin(), v.end(), std::ostream_iterator<int>(std::cout, " ")); std::cout << std::endl;
copy(v.begin(), v.end()
schätz ich "kopiert" von den string von anfang bis ende , oder? ^^......std::ostream_iterator<int>(std::cout, " "));
....aber was ist ofstream_iterator? und warum um alles in der welt wird das zeug dann per cout << std; ohne irgendwelche parameter ausgegeben ... und außerdem funktioniert cout nicht mehr wenn ich es weiter unten, nach der Außgabe vom vector eingebe.P.S.: gibt es irgendeinen Vorteil überall std:: zu schreiben anstatt am anfang vom code using namespace std;?
-
kauf buch, oder wie auch immer
kapitel
STL und da iteratoren
dort haste "datencontainer" die mit Iteratoren hantieren
z.b. dein
vector oder map oder list oder oder
lies dich da rein, das bringt ne menge
-
Der ostream_iterator ist aber nochmal ne Sache für sich. Er 'iteriert' ja nichtmal wirklich. Der ostream_iterator(cout, " ") übergibt einfach alle Eingaben so an cout, als würdest Du << machen und jeweils ein Leerzeichen als Trennzeichen angeben.