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

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

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

vector<double> testVect[1];

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

testVect[0].push_back(0);

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

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

最佳答案
如果你想要两个向量,你应该声明:

 vector<double> testVect[2];

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

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

顺便说一句,您可以使用最近的GCC编译器(例如4.7)安装最新的Linux发行版,并将其作为g -Wall -g运行它肯定会警告您,如果您静态访问testVect超出范围,就好像你似乎有过.

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

转载注明原文:向量数组C – 添加元素时的奇怪行为 - 代码日志