From 0ffae376256a1e1ce0b73596389fed2cfc75c7e8 Mon Sep 17 00:00:00 2001 From: Syndamia Date: Sat, 7 May 2022 11:47:54 +0300 Subject: Autocommit at 07.05.2022 @ 11:47 --- src/Services/EventService.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'src/Services/EventService.cpp') diff --git a/src/Services/EventService.cpp b/src/Services/EventService.cpp index 56f513e..50fb2a8 100644 --- a/src/Services/EventService.cpp +++ b/src/Services/EventService.cpp @@ -135,7 +135,7 @@ StatusCode EventService::buyTicket(const char* name, const Date& date, const Tic return Success; } -String EventService::createSeatingString(const char* name, const Date& date, unsigned* seatsPerRow) { +String EventService::createSeatingString(const char* name, const Date& date, unsigned* seatsPerRow, char* out) { unsigned eInd = indexOfEvent(name, date); if (eInd == events.get_count()) return ""; @@ -143,15 +143,16 @@ String EventService::createSeatingString(const char* name, const Date& date, uns unsigned rowCount = events[eInd].get_hall().get_rows(), seatsCount = events[eInd].get_hall().get_seatsPerRow(); *seatsPerRow = seatsCount; - String out; - for (unsigned row = 1; row <= rowCount; row++) { - for (unsigned seat = 1; seat <= seatsCount; seat++) { + delete[] out; + out = new char[rowCount * seatsCount]; + for (unsigned acc = 0, row = 1; row <= rowCount; row++) { + for (unsigned seat = 1; seat <= seatsCount; seat++, acc++) { if (events[eInd].get_tickets().contain(Ticket(row, seat))) - out += 'B'; + out[acc] = 'B'; else if (events[eInd].get_reservations().contain(Ticket(row, seat))) - out += 'R'; + out[acc] = 'R'; else - out += ' '; + out[acc] = ' '; } } return out; -- cgit v1.3.1-23-gd82d