数据丢失的问题
class Vertex;
class Edge
{
Vertex* vertexes[2];
Edge(Vertex* one, Vertex* two);
}
class Face
{
Vertex* vertexes[3];
Edge* edges[3];
Face(Vertex*one, Vertex* two, Vertex* three);
setEdge(Edge *e, int count);//edge[count] = e;
}
main()
{
vertexList.push_back(vertexOne);
vertexList.push_back(vertexTwo);
vertexList.push_back(vertexThree); vertexIter = vertexList.begin();
Edge e1(vertexList, vertexList + 1);
Edge e2(vertexList + 1, vertexList + 2);
Edge e3(vertexList, vertexList + 2);
Face face(vertexIter, vertexIter + 1, vertexIter + 2);
edgeIter = edgeList.begin();
edgeList.push_back(e1);
face.setEdge(edgeIter);
edgeList.push_back(e2);
face.setEdge(edgeIter + 1); //此时 会出现edges[0]消失的现象
edgeList.push_back(e3);
face.setEdge(edgeIter + 2); //此时 仅有edges[2]中的数据还存在
}
创建3个vector分别存vertex、edge、face对象:vertexList、edgeList、faceList
创建3个vertex对象存入vertexList
然后利用vertexList的iterator创建3个edge对象,将他们存入edgeList
最后创建Face对象face,通过setEdge,利用edgeList的iterator做指针,将edgeList中的三个边先后注入face中,
这时出现了问题:注入第一个edges[0]成功,但当我继续注入时,会出现face中的edges[0]丢失的现象,
最后仅仅edges[3]中还有值,请问这是怎么回事,是由于何处生成了临时变量吗,求解释