[Lemon-commits] [lemon_svn] klao: r2517 - hugo/trunk/lemon

Lemon SVN svn at lemon.cs.elte.hu
Mon Nov 6 20:53:13 CET 2006


Author: klao
Date: Thu Feb  2 14:43:01 2006
New Revision: 2517

Modified:
   hugo/trunk/lemon/kruskal.h

Log:
kruskal.h: an overloaded function for older, pointer-style iterators


Modified: hugo/trunk/lemon/kruskal.h
==============================================================================
--- hugo/trunk/lemon/kruskal.h	(original)
+++ hugo/trunk/lemon/kruskal.h	Thu Feb  2 14:43:01 2006
@@ -18,8 +18,9 @@
 #define LEMON_KRUSKAL_H
 
 #include <algorithm>
+#include <vector>
 #include <lemon/unionfind.h>
-#include<lemon/utility.h>
+#include <lemon/utility.h>
 
 /**
 @defgroup spantree Minimum Cost Spanning Tree Algorithms
@@ -315,7 +316,7 @@
     mutable Iterator it;
 
   public:
-    typedef typename Iterator::value_type Key;
+    typedef typename std::iterator_traits<Iterator>::value_type Key;
     typedef bool Value;
 
     KruskalSequenceOutput(Iterator const &_it) : it(_it) {}
@@ -415,8 +416,6 @@
   kruskal(const GR& g,
 	  const IN& in,
 	  RET out,
-	  //,typename RET::value_type = typename GR::Edge()
-	  //,typename RET::value_type = typename RET::value_type()
 	  const typename RET::value_type * = 
 	  (const typename RET::value_type *)(0)
 	  )
@@ -425,6 +424,18 @@
     return kruskal(g, KruskalMapInput<GR,IN>(g, in), _out);
   }
  
+  template <class GR, class IN, class RET>
+  inline
+  typename IN::Value
+  kruskal(const GR& g,
+	  const IN& in,
+	  RET *out
+	  )
+  {
+    KruskalSequenceOutput<RET*> _out(out);
+    return kruskal(g, KruskalMapInput<GR,IN>(g, in), _out);
+  }
+ 
   /// @}
 
 } //namespace lemon



More information about the Lemon-commits mailing list