- // string_helper.h
- #pragma once
- #include <string>
- #include <sstream>
- #include <vector>
- template<typename T> T from_string(const std::string& s)
- {
- std::istringstream is(s);
- T t;
- is >> t;
- return t;
- }
- template<typename T> void from_string(std::string& s, std::vector<T>& vec)
- {
- size_t pos = 0;
- while( s.length() > 0 )
- {
- pos = s.find(',');
- if (pos != string::npos)
- {
- string ssub = s.substr(0, pos);
- vec.push_back(from_string<T>(sub));
- ss = s.substr(pos + 1, s.length());
- }
- else
- {
- vec.push_back(from_string<T>(s));
- s.clear();
- }
- }
- }
- template<typename T> std::string to_string(const T& t)
- {
- std::ostringstream os;
- os << t;
- return os.str();
- }
- template<typename T> std::string to_string(std::vector<T>& vec)
- {
- std::ostringstream os;
- std::vector<T>::iterator iter = vec.begin();
- while( iter != vec.end())
- {
- os << (*iter) << ',';
- iter++;
- }
- return os.str().substr(0, os.str().find_last_of(','));
- }