<分区>
我遇到了一个我不太明白的问题:
我正在用
创建一个对象 Edgeedge_vec1.push_back(Edge(src,dest));
然后我想在一个单独的 vector 中保留一个指向这条边的指针:
edge_vec2.push_back(&edge_vec1.back());
但是,一旦我添加了第二个 Edge 对象,指向 edge_vec2 中第一个 Edge 的指针就会失效(获取一些随机数据)。是不是因为 edge_vec2 中的指针实际上指向了 edge_vec1 中的某个地方,而不是底层元素?我可以通过在堆上创建我的 Edge 对象来避免这种情况,但我想了解发生了什么。
谢谢。