Kurzes Testprogramm verwirrt mich stark ...
-
Hallöchen,
folgender Code:
//test.cpp #include <iostream> #include <vector> #include <algorithm> using namespace std; void druckVektor(const vector<int> &vc) { cout << "Vektorsize: " << vc.size() << endl; cout << "Vektorinhalt: "; for(int i = 0; i < vc.size(); ++i) cout << i << ' '; cout << endl; } int main(void) { vector<int> vc; for(int i = 0; i < 4; ++i) { vc.push_back(i); vc.push_back(i); } druckVektor(vc); }compiliert mit:
g++ test.cpp -o test.exeerzeugt bei mir folgende Ausgabe:
Vektorsize: 8
Vektorinhalt: 0 1 2 3 4 5 6 7statt wie erwartet:
...
Vektorinhalt: 0 0 1 1 2 2 3 3Was verstehe ich hier nicht?
-
Du gibst die Laufvariable statt des Vektorinhalts aus. Ich hoffe, das beseitigt deine Verwirrung etwas.
-
als kleiner wink mit dem zaunpfahl:
einzelne vector-elemente sprichst du zb mit "vectorname.at(index) an
oder direkt mit vectorname[index]gruß Jann
edit: vertippt
-
Mein Gott, Ihr werdet es nicht glauben:
Ich war dermaßen blind, daß ich mir eine Klasse von vector abgeleitet habe, um zu prüfen, was beim push_back() ankommt. Da war natürlich alles korrekt. Dann bin ich zur Toilette gegangen, und als ich da saß, da fiel es mir wie Schuppen aus den Haaren ...Ich hoffe, Ihr habt Euch nicht über die Zeitverschwendung wegen meiner Blödheit geärgert, sondern konntet Euch über so einen Blackout ein bißchen amüsieren.
Danke an alle, die auf den Quatsch noch eine ernste Antwort geschrieben haben.
Belli
-
hey belli,
im nachhinein kann ich schon darüber schmunzeln
es hätte ja auch unwissen sein können