Array von Vektoren C++ - neugierig-Verhalten beim hinzufügen von Elementen
google und stackoverflow-Suche konnte mir nicht helfen, ich habe keine Wahl aber, Sie zu Fragen, Jungs für die Hilfe.
Ich würde gerne ein array von Vektoren - ich weiß, dass dieses array wird nur mit zwei Vektoren. So
vector<double> testVect[1];
Nun, wenn ich will, um ein Element zu den ersten Vektor enthalten, in das array nutze ich
testVect[0].push_back(0);
Bisher scheint alles ok - leider ist das hinzufügen eines Elements der ersten Vektor-irgendwie fügt auch das gleiche element (in diesem Fall die 0) der zweite Vektor als gut.
Könnte mir jemand sagen, der Grund für diese Art von Verhalten ? (bitte) - und vielleicht einen workaround.
Derzeit habe ich mit Visual Studio 6 (Arbeitgeber nicht installieren eine neue compiler - ich bin schon riling bis meine Kollegen 😀
vector<double> testVect[1];
macht nur einen Vektor. Seine ein array von einem Vektor, mit einem maximalen index von0
. Was macht Sie denken, es gibt ein zweites element, oder, dass Sie auch betroffen von der push_back?- Ich verwirrt initialisieren einen Vektor mit accesing Elemente. In c++ beginnt die Zählung vector-Elemente mit 0. Wenn also ein Vektor enthält 2 Elemente, die Sie würde auf die erste über den Vektor[0]. Das ist, warum ich dachte, schreiben testVect[1], würde das Ergebnis in ein array von zwei Vektoren. Danke 🙂
- als downvoted erneut - dieses mal ohne ersichtlichen Grund ... Manchmal sind die Leute verwirrt, grr.
- Ich denke, der Grund ist, weil Sie denken, die Frage ist "nicht gut recherchiert". Nicht sicher, ob ich einverstanden.
- Ich habe wirklich Forschung meine erste Frage !! Leider hat es nicht selbst auftreten zu mir, dass ich nur einen 1 elemt-array für die es scheint, dass die Warnungen deaktiviert wurden. In meiner Abteilung bin ich die einzige person, die Codierung C++ und es ist mein erstes Projekt. Ich Lesen regelmäßig stackoverflow "Artikel", und Sie Jungs haben bereits dazu beigetragen, mich sehr passiv <3 <3 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, dass zwei Vektoren, sollten Sie erklären:
dann verwenden
testVect[0]
undtestVect[1]
im code.Und aktivieren Sie alle Warnungen auf Ihrem compiler.
BTW, könnten Sie installieren eine aktuelle Linux-distribution mit einem aktuellen GCC-compiler (z.B. 4.7), und führen Sie es als
g++ -Wall -g
es wäre sicherlich gewarnt haben, wenn Sie statisch aufgerufen dietestVect
abwegig, wie es scheint, dass Sie hatten.Sowohl GNU/Linux und GCC sind kostenlos, so dass Ihr manager glücklich sein konnte.