1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
#ifndef NUMBERLIST_H
#define NUMBERLIST_H
#include <cstdlib>
#include <string>
#include <vector>
#include <set>
class NumberList {
public:
template <typename IntType>
static void ParseIntList(const std::string& str, std::vector<IntType>& list) {
std::string temp = str;
size_t pos = temp.find(",");
while (pos != std::string::npos) {
std::string idStr = temp.substr(0, pos);
temp = temp.substr(pos + 1);
IntType num = atoi(idStr.c_str());
list.push_back(num);
pos = temp.find(",");
}
IntType num = atoi(temp.c_str());
list.push_back(num);
}
template <typename IntType>
static void ParseIntList(const std::string& str, std::set<IntType>& list) {
std::string temp = str;
size_t pos = temp.find(",");
while (pos != std::string::npos) {
std::string idStr = temp.substr(0, pos);
temp = temp.substr(pos + 1);
IntType num = atoi(idStr.c_str());
list.insert(num);
pos = temp.find(",");
}
IntType num = atoi(temp.c_str());
list.insert(num);
}
};
#endif
|