7

对于 google 和 stackoverflow 搜索无法帮助我,我别无选择,只能向你们寻求帮助。

我想使用一个向量数组——我知道这个数组只需要包含两个向量。因此

vector<double> testVect[1];

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

testVect[0].push_back(0);

到目前为止,一切似乎都还好——不幸的是,向第一个向量添加一个元素也会以某种方式也将相同的元素(在本例中为 0)添加到第二个向量。

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

4

1 回答 1

16

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

 vector<double> testVect[2];

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

你应该在你的编译器上启用所有警告。

顺便说一句,您可以安装最新的 Linux 发行版,以及最新的 GCC 编译器(例如 4.7),然后运行它,因为如果您静态访问越界,g++ -Wall -g它肯定会警告您,就像您已经拥有的那样。testVect

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

于 2012-12-05T17:17:09.297 回答