Array von Vektoren C ++ - seltsames Verhalten beim Hinzufügen von Elementen

8

für Google und stackoverflow Suche konnte mir nicht helfen Ich habe keine andere Wahl als dich um Hilfe zu bitten.

Ich möchte ein Array von Vektoren verwenden - ich weiß, dass dieses Array nur zwei Vektoren enthalten muss. Also

%Vor%

Wenn ich jetzt ein Element zum ersten Vektor im Array hinzufügen möchte, benutze ich

%Vor%

Bisher scheint alles in Ordnung zu sein - leider fügt das Hinzufügen eines Elements zum ersten Vektor auch das gleiche Element (in diesem Fall die 0) zum zweiten Vektor hinzu.

Kann mir jemand den Grund für diese Art von Verhalten sagen? (bitte) - und vielleicht ein Workaround. Momentan muss ich Visual Studio 6 verwenden (der Arbeitgeber wird keinen neuen Compiler installieren - ich bin schon dabei, meine Kollegen zu ärgern: D

    
Andrey Lujankin 05.12.2012, 17:14
quelle

1 Antwort

16

Wenn Sie zwei Vektoren haben wollen, sollten Sie Folgendes deklarieren:

%Vor%

Verwenden Sie dann testVect[0] und testVect[1] in Ihrem Code.

Und Sie sollten alle Warnungen auf Ihrem Compiler aktivieren.

BTW, Sie könnten eine aktuelle Linux-Distribution mit einem kürzlich erschienenen GCC-Compiler (zB 4.7) installieren und als g++ -Wall -g ausführen, das Sie sicherlich gewarnt hätte, wenn Sie statisch auf die testVect out of bounds zugreifen würden scheint, dass Sie gehabt haben.

Sowohl GNU / Linux als auch GCC sind kostenlos, also könnte Ihr Manager glücklich sein.

    
Basile Starynkevitch 05.12.2012, 17:17
quelle

Tags und Links