#ifndef DATA_SPLITTER_H #define DATA_SPLITTER_H #include #include /** * split an input-file into various tokens */ class Splitter { std::string str; char sep = ';'; std::vector split; public: /** ctor */ Splitter(const std::string& str, const char sep = ';') : str(str), sep(sep) { build(); } bool has(const int idx) const {return split.size() > idx;} const std::string& get(const int idx) const {return split.at(idx);} const float getFloat(const int idx) const {return std::stof(get(idx));} size_t size() const {return split.size();} private: void build() { std::string cur; for (char c : str) { if (c == sep) { split.push_back(cur); cur = ""; } else { cur += c; } } split.push_back(cur); } }; #endif // DATA_SPLITTER_H