向量数组C++ - 添加元素时的奇怪行为

And*_*kin 8 c++ arrays vector

谷歌和stackoverflow搜索无法帮助我,我别无选择,只能向你们寻求帮助.

我想使用一个向量数组 - 我知道这个数组只需要包含两个向量.从而

vector<double> testVect[1];
Run Code Online (Sandbox Code Playgroud)

现在,当我想将Element添加到我使用的数组中包含的第一个向量时

testVect[0].push_back(0);
Run Code Online (Sandbox Code Playgroud)

到目前为止一切似乎都没问题 - 不幸的是,在第一个向量中添加一个元素也会在第二个向量中添加相同的元素(在本例中为0).

有人能告诉我这种行为的原因吗?(请) - 也许是一种解决方法.目前我必须使用Visual Studio 6(雇主不会安装新的编译器 - 我已经惹恼了我的同事:D

Bas*_*tch 16

如果你想要两个向量,你应该声明:

 vector<double> testVect[2];
Run Code Online (Sandbox Code Playgroud)

然后在你的代码中使用testVect[0]testVect[1].

您应该在编译器上启用所有警告.

顺便说一句,你可以安装一个最近的Linux发行版,与最近的GCC编译器(如4.7),并运行它g++ -Wall -g肯定会提醒你,如果你静态访问的testVect出界,像你好像有.

GNU/Linux和GCC都是免费的,所以你的经理可能会很高兴.