[Lemon-commits] [lemon_svn] alpar: r698 - hugo/trunk/src/include
Lemon SVN
svn at lemon.cs.elte.hu
Mon Nov 6 20:41:01 CET 2006
Author: alpar
Date: Wed May 5 10:18:19 2004
New Revision: 698
Modified:
hugo/trunk/src/include/dijkstra.h
Log:
Compiles also with icc.
Modified: hugo/trunk/src/include/dijkstra.h
==============================================================================
--- hugo/trunk/src/include/dijkstra.h (original)
+++ hugo/trunk/src/include/dijkstra.h Wed May 5 10:18:19 2004
@@ -45,7 +45,7 @@
#else
template <typename Graph,
typename LengthMap=typename Graph::template EdgeMap<int>,
- template <class,class,class> class Heap = BinHeap >
+ template <class,class,class,class> class Heap = BinHeap >
#endif
class Dijkstra{
public:
@@ -146,7 +146,7 @@
///- The shortest path tree.
///- The distance of each node from the root.
template <typename Graph, typename LengthMap,
- template<class,class,class> class Heap >
+ template<class,class,class,class> class Heap >
void Dijkstra<Graph,LengthMap,Heap>::run(Node s) {
NodeIt u;
@@ -157,8 +157,11 @@
typename Graph::template NodeMap<int> heap_map(G,-1);
- Heap<Node, ValueType, typename Graph::template NodeMap<int> >
- heap(heap_map);
+ typedef Heap<Node, ValueType, typename Graph::template NodeMap<int>,
+ std::less<ValueType> >
+ HeapType;
+
+ HeapType heap(heap_map);
heap.push(s,0);
@@ -176,19 +179,19 @@
Node w=G.bNode(e);
switch(heap.state(w)) {
- case heap.PRE_HEAP:
+ case HeapType::PRE_HEAP:
heap.push(w,oldvalue+length[e]);
predecessor.set(w,e);
pred_node.set(w,v);
break;
- case heap.IN_HEAP:
+ case HeapType::IN_HEAP:
if ( oldvalue+length[e] < heap[w] ) {
heap.decrease(w, oldvalue+length[e]);
predecessor.set(w,e);
pred_node.set(w,v);
}
break;
- case heap.POST_HEAP:
+ case HeapType::POST_HEAP:
break;
}
}
More information about the Lemon-commits
mailing list