Имам текстов файл, който съдържа следните данни за проста система за влизане/излизане:
където всеки ред има {time_stamp} {name} {door_entry} {status}
time_stamp - брой секунди след произволен начален час
име - Потребителското име на работниците
door_entry - номер на входна/излезла врата
Статус - дали са влезли или излезли през вратата
Текстовият файл е голям и има около 10 000 записа, подобни на този
Въпрос: Чудя се как мога да разложа всеки ред и да разделя всяка част от информацията на променлива. Така например имам работнически клас тук:
class Worker
{
std::string staffToken;
int doorEntry;
std::string status;
public:
Employee();
};
Искам да разреша този проблем и с масив. Знам, че мога да използвам вектор или карта, но искам да разреша това с масив. Създадох масив от указателни обекти за класа Worker.
typedef Worker * WorkPtr;
WorkPtr * workers = new WorkPtr[MAX]; //where max is some large constant
for (int i = 0; i < MAX; ++i)
{
workers[i] = new Worker();
}
Целта на този проблем, който създадох, е, че просто искам да проверя за някаква необичайна дейност в този текстов файл, където работник е влизал или излизал няколко пъти подред:
Worker
, след което попълвате масива от указатели с конструирани по подразбиранеWorker
s. Може да получите същите резултати със значително по-малко разходи и ръчно управление на паметта сWorker workers[MAX];
и безfor
цикъл. - person user4581301   schedule 22.08.2017