考虑这段代码。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector <int *> test;
vector <int *> v;
int *a = new int;
int *b = new int;
*a = 1;
*b = 2;
v.push_back (a);
v.push_back (b);
for (int i = 0; i < 2; ++i)
{
int n = *v[i];
test.push_back (&n);
}
cout << *test[0] << " " << *test[1] << endl;
delete a;
delete b;
return 0;
}
问题的陈述是:
“鉴于此代码,请回答以下问题:
为什么“测试”向量只包含 2?
我们如何更改 for 循环以正确复制(只有 for 循环内的代码)?”
我无法回答这些问题中的任何一个,因此将不胜感激。
提前致谢。