12 std::tuple<std::vector<MyObject>*,
18 auto objs =
new std::vector<MyObject>();
19 auto corrects =
new std::vector<bool>();
20 auto yeses =
new std::vector<size_t>();
21 auto nos =
new std::vector<size_t>();
22 std::string conceptlist =
"";
25 int prev_setNumber = -1;
28 auto pos = fs.tellg();
31 auto& b = std::getline(fs, line);
34 return std::make_tuple(objs,corrects,yeses,nos,conceptlist);
38 auto parts =
split(line,
' ');
39 auto new_conceptlist =
S(parts[0]) +
S(parts[1]);
40 int setNumber = std::stoi(parts[2]);
41 bool correctAnswer = (parts[4] ==
"True");
42 MyObject o{parts[5], parts[6], parts[7]};
43 size_t cntyes = std::stoi(parts[8]);
44 size_t cntno = std::stoi(parts[9]);
47 if(prev_setNumber != -1 and setNumber != prev_setNumber) {
49 fs.seekg(pos, std::ios_base::beg);
50 return std::make_tuple(objs,corrects,yeses,nos,conceptlist);
54 conceptlist = new_conceptlist;
56 corrects->push_back(correctAnswer);
57 yeses->push_back(cntyes);
58 nos->push_back(cntno);
62 prev_setNumber = setNumber;
std::string S
Definition: Main.cpp:28
std::deque< std::string > split(const std::string &s, const char delimiter)
Split is returns a deque of s split up at the character delimiter. It handles these special cases: sp...
Definition: str.h:50
std::tuple< std::vector< MyObject > *, std::vector< bool > *, std::vector< size_t > *, std::vector< size_t > *, std::string > get_next_human_data(std::ifstream &fs)
This functions reads our data file format and returns a vector with the human data by each set item...
Definition: Data.h:16