Consider this piece of code.
#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;
}
The problem's statement is:
"Given this code, answer the following questions:
- Why does "test" vector contain only 2's? 
- How can we change for loop to copy properly (only code inside for loop)?" 
I couldn't answer any of these questions, so a little bit of help will be appreciated.
Thanks in advance.
 
     
     
     
    