Website Summary Files Commits Branches @commit @diff @stats
path: root / src / Services / EventService.cpp
diff options
context:
space:
mode:
1 files changed, 8 insertions, 7 deletions
-rw-r--r--src/Services/EventService.cpp15
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;