]> Creatis software - clitk.git/commitdiff
Add MapToVec (first/second) functions.
authorDavid Sarrut <david.sarrut@gmail.com>
Thu, 27 Oct 2011 13:49:01 +0000 (15:49 +0200)
committerDavid Sarrut <david.sarrut@gmail.com>
Thu, 27 Oct 2011 13:49:01 +0000 (15:49 +0200)
common/clitkCommon.h
common/clitkCommon.txx

index 31f28dc40637bd95e91dfec7974f23183edd43ac..97808d8d870ba778887a8ba98542cd3ea7ddf8b5 100644 (file)
@@ -209,6 +209,13 @@ namespace clitk {
   //--------------------------------------------------------------------
   void PrintMemoryUsed();
 
+  //--------------------------------------------------------------------
+  // Convert a map to a vector
+  template <typename M, typename V> 
+  void MapToVecFirst(const M & m, V & v);
+  template <typename M, typename V> 
+  void MapToVecSecond(const M & m, V & v);
+
 #include "clitkCommon.txx"
 
 } // end namespace
index dc7f1653c45d5d9e3538043297ca89408c64b80e..5ee83bdca8f4f3efc23ae2aa8dc12ad28a2fe36e 100644 (file)
@@ -195,6 +195,7 @@ std::string GetTypeAsString()
 }
 //--------------------------------------------------------------------
 
+
 //--------------------------------------------------------------------
 template<class ImageType>
 void CloneImage(const typename ImageType::Pointer & input, typename ImageType::Pointer & output)
@@ -217,5 +218,22 @@ void CloneImage(const typename ImageType::Pointer & input, typename ImageType::P
 }
 //--------------------------------------------------------------------
 
+
+//--------------------------------------------------------------------
+// http://stackoverflow.com/questions/771453/copy-map-values-to-vector-in-stl
+template <typename M, typename V> 
+void MapToVecFirst(const  M & m, V & v) {
+  for( typename M::const_iterator it = m.begin(); it != m.end(); ++it ) {
+    v.push_back( it->first );
+  }
+}
+template <typename M, typename V> 
+void MapToVecSecond(const  M & m, V & v) {
+  for( typename M::const_iterator it = m.begin(); it != m.end(); ++it ) {
+    v.push_back( it->second );
+  }
+}
+//--------------------------------------------------------------------
+
 #endif /* end #define CLITKCOMMON_TXX */