I have a vector with elements. I need to output three elements. If, for example, I have 5 elements, you first need to output 3 and then 2, but in the cycle in the formula (pageNumber - 1) * 3 + 2 costs +2, that is, 3 elements should be displayed, and then another 3. How I need to make a check, have I gone beyond the vector?

int reviewAllEvents(const User &user, vector<Event> &events) { system("CLS"); int pageNumber = 0; for (int i = (pageNumber - 1) * 3; i <= (pageNumber - 1) * 3 + 2; i++) { cout << events[i].getTitle() << endl; cout << events[i].getShortPlot() << endl; cout << events[i].getDate() << events[i].getAuthor() << endl; } return 0; } 
  • one
    And what does this crazy code mean? Where are the three items that are displayed? Why is the vector index a negative number ?! - Vlad from Moscow
  • i = [-3, -1] "Am I out of the vector?" Released. - vp_arth

1 answer 1

Add a check

 if (i < 0 || i >= events.size()) break;