因此,我在指针方面遇到了一些问题,并找出如何有效地使用它们。指定副本指针
说我有在那里我从堆栈中像这样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