2011-11-01 92 views
2

我在這裏有一個C++的問題。矢量的指針,指向矢量對象中的對象。怎麼做?

我有三個類:圖形,節點和邊緣,以建模一個簡單的圖形。 現在,Graph類的一個對象具有一個帶有Node類對象的向量和一個帶有Edge類對象的向量。

Node類的一個對象必須知道所有傳入和傳出邊緣。而邊緣類的一個對象必須知道它來自哪個節點以及它到達哪個節點。 現在我有以下問題:圖中的所有邊存儲在邊類的向量中。節點類的對象也必須知道一些邊,所以我給了它們一個指向矢量的指針,以指向圖的向量中的所有邊。但現在我的問題是:如果我從圖的向量中刪除一個邊,那麼指針是錯誤的。

我不想將eache邊緣複製到兩個向量中,所以我認爲我必須這樣做,但我真的看到從向量中刪除某些東西的問題。

有沒有解決方案,還是我必須複製每個邊緣? 有人可以幫我嗎?

+0

爲了讓我們的幫助最有價值,您能告訴我們這是作業嗎?也就是說,這是一個學習練習,還是這是一項工作或愉悅練習? –

+1

@Rob:99%表示不做作業。也許是學術,但不是功課 – sehe

+0

那是學術。我唯一的問題是這個。這個練習中的其他一切對我來說都很清楚,而且會很容易寫出來,但是我對這個矢量事物有問題。因爲我必須使用矢量來做到這一點,而且我不能複製太多的對象。 – M0rgenstern

回答

1

我會使用描述符或簡單地使用shared_ptr的所有容器。

描述符是Boost Graph Library中的首選武器