1. // string_helper.h 
  2. #pragma once 
  3. #include <string> 
  4. #include <sstream> 
  5. #include <vector> 
  6.  
  7. template<typename T> T from_string(const std::string& s)  
  8.     std::istringstream is(s); 
  9.     T t; 
  10.     is >> t; 
  11.     return t; 
  12.  
  13. template<typename T> void from_string(std::string& s, std::vector<T>& vec) 
  14.     size_t pos = 0
  15.     while( s.length() > 0 ) 
  16.     { 
  17.         pos = s.find(','); 
  18.         if (pos != string::npos) 
  19.         { 
  20.             string ssub = s.substr(0, pos); 
  21.             vec.push_back(from_string<T>(sub)); 
  22.             ss = s.substr(pos + 1, s.length()); 
  23.         }  
  24.         else  
  25.         { 
  26.             vec.push_back(from_string<T>(s)); 
  27.             s.clear(); 
  28.         } 
  29.     } 
  30.  
  31. template<typename T> std::string to_string(const T& t)  
  32.   std::ostringstream os; 
  33.   os << t
  34.   return os.str(); 
  35.  
  36. template<typename T> std::string to_string(std::vector<T>& vec) 
  37.     std::ostringstream os; 
  38.     std::vector<T>::iterator iter = vec.begin(); 
  39.     while( iter != vec.end()) 
  40.     { 
  41.         os << (*iter) << ','; 
  42.         iter++; 
  43.     } 
  44.     return os.str().substr(0, os.str().find_last_of(','));