在向量中存儲指針對象時遇到困難。 我存儲這樣的值:淺拷貝與向量
face.firstEdge = &edge
all_faces.push_back(face);
其中face.edge
是一個指向其它對象。 我的矢量聲明如下std::vector<Face> all_faces;
和結構是:
struct Face{
Edge* firstEdge
}
當我後來通過我的元素,看起來他們都具有相同的價值,他們shouln't有
for(int i = 0; i < all_faces.size(); i++){
all_faces[i].firstEdge->vertex->x;
}
我知道C++編譯器默認做一個淺拷貝或者其他東西,所有東西指向同一個地址,我不想要這個。
編輯:邊緣是一個本地變量Edge edge = {};
每次在循環中聲明和修改。
向我們展示您的矢量聲明! – CinCout
是否定義了face的複製構造函數?你可以顯示臉型的類型,矢量聲明等的定義。 – Ramon
什麼範圍有「邊緣」? –