我想把一个vector的所有元素的地址存在另外一个vector中,但是调用这个存有地址时候会输出错误,为什么呢?
#include <iostream>
#include <vector>
struct a
{
int id;
};
int main()
{
a tmp_a;
std::vector<a> b;
std::vector<a*> ptr_b;
for(size_t i=0; i<5; i++)
{
tmp_a.id = i;
b.push_back(tmp_a);
ptr_b.push_back(&b.at(i));
std::cout<< ptr_b[i]->id <<std::endl;
}
for(size_t j=0; j<5; j++)
{
std::cout<< ptr_b[j]->id <<std::endl;
}
return 0;
}
输出结果:
0
1
2
3
4
34889408
0
34811920
0
4