15 Separator(
const std::vector<T>& v,
const char*
const sep)
17 const std::vector<T>&
fVec;
25 Separate(
const std::vector<T>& v,
const char*
const sep)
33 Separator2D(
const std::vector<T>& v,
const char*
const sep1,
const char*
const sep2)
35 const std::vector<T>&
fVec;
44 Separate(
const std::vector<T>& v,
const char*
const sep1,
const char*
const sep2)
55 operator<<(ostream& os, const Separator<T>&
s)
57 copy(
s.fVec.begin(),
s.fVec.end(), ostream_iterator<T>(os,
s.fSep));
65 operator<<(ostream& os, const Separator2D<T>&
s)
67 for (
const auto it :
s.fVec)
79 const bool isRange = (str.find(
':') != std::string::npos);
80 const char sep = (isRange ?
':' :
',');
81 std::istringstream iss(str);
83 std::vector<double> ret;
84 while (std::getline(iss, n, sep))
85 ret.push_back(stod(n));
87 const double a = ret.at(0);
88 const double b = ret.at(1);
89 const unsigned int n = ret.at(2);
91 for (
unsigned int i = 0; i <= n; ++i)
92 ret.push_back(a + (b-a)*i/n);
100 Update(std::vector<double>& init,
const std::vector<double>& res)
103 for (
unsigned int i = 0, n = init.size(); i < n; ++i)
Separator(const std::vector< T > &v, const char *const sep)
const std::vector< T > & fVec
void Update(std::vector< double > &init, const std::vector< double > &res)
Separator2D(const std::vector< T > &v, const char *const sep1, const char *const sep2)
Separator< T > Separate(const std::vector< T > &v, const char *const sep)
const std::vector< T > & fVec
std::vector< double > ParseListRange(const std::string &str)