[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