因此,我在指針方面遇到了一些問題,並找出如何有效地使用它們。指定副本指針
說我有在那裏我從堆棧中像這樣while循環突然離開「節點」對象的情況下。
while(...) {
Node obj = stack.top();
stack.pop();
//do something with the obj
}
我想有它運行有效,我不應該創建一個新的節點上每次循環。所以我想這可能是更明智的初始化循環外的節點指針:
Node* obj;
while(...) {
obj = &stack.top();
stack.pop();
//do something with the obj
}
然而,當我這樣做obj的獲取與由於其參考彈出刪除...
難道是更有效地創建一個副本,並有指針指向複製或只創建每個迭代都有一個新的節點。告訴我,如果我的思維過程與我的基礎一樣,我只是想了解有效的方法來實現這一目標。
編輯:這是我測試Dijkstra算法的一部分,在這裏我通過很多節點搜索並且運行速度很慢,所以我試圖儘可能減少運行時間。
無法猜測創建新節點的相對費用與每次都複製一個現有的 - 特別是因爲你沒有向我們展示任何有關Node的內容,所以我們沒有任何猜測的基礎。 – 2013-04-11 03:23:07