无法帮助我,我别无选择,只能向你们寻求帮助。
我想使用一个向量数组 - 我知道这个数组只需要包含两个向量。因此
vector<double> testVect[1];
现在,当我想将数组添加到数组中包含的第一个向量时,我使用
testVect[0].push_back(0);
到目前为止一切似乎都没问题 - 遗憾的是,在第一个向量中添加一个元素也会在第二个向量中添加相同的元素(在本例中为0)。
有人能告诉我这种行为的原因吗? (请) - 也许是一种解决方法。 目前我必须使用Visual Studio 6(雇主不会安装新的编译器 - 我已经惹恼了我的同事:D
答案 0 :(得分:16)
如果你想要两个向量,你应该声明:
vector<double> testVect[2];
然后在代码中使用testVect[0]
和testVect[1]
。
您应该在编译器上启用所有警告。
顺便说一句,您可以使用最近的GCC编译器(例如4.7)安装最新的Linux发行版,并将其作为g++ -Wall -g
运行,如果您静态访问testVect
,它肯定会警告您边界,好像你似乎已经有了。
GNU / Linux和GCC都是免费的,所以你的经理可能会很开心。