#pragma once #include #include #include class Rec { public: float prob; std::string line; Rec(float aprob, const std::string &aline) :prob(aprob) ,line(aline) {} inline bool operator< (const Rec &compare) const { return prob < compare.prob; } }; //////////////////////////////////////////////////////////// void Process(int limit, std::istream &inStrme, std::ostream &outStrme); void Output(std::ostream &outStrme, std::vector &records, int limit); //////////////////////////////////////////////////////////// inline void Tokenize(std::vector &output , const std::string& str , const std::string& delimiters = " \t") { // Skip delimiters at beginning. std::string::size_type lastPos = str.find_first_not_of(delimiters, 0); // Find first "non-delimiter". std::string::size_type pos = str.find_first_of(delimiters, lastPos); while (std::string::npos != pos || std::string::npos != lastPos) { // Found a token, add it to the vector. output.push_back(str.substr(lastPos, pos - lastPos)); // Skip delimiters. Note the "not_of" lastPos = str.find_first_not_of(delimiters, pos); // Find next "non-delimiter" pos = str.find_first_of(delimiters, lastPos); } }