Standard vector<> dynamically allocates the required amount of memory it needs; which saves you the bother of memory management. However, letting vector <> acquire additional memory slowly one chunk after another is unacceptable under real-time constraints. But this doesn’t mean you have to abandon vector<> yet. In order to avoid the performance penalty of having it re-allocate memory, you can ensure that it has the right amount of memory allocated in advance, like this:
class Message { //... };#include void RealTimeStuff( vector &vm); //severe time constraintsvoid main() {using namespace std; //for vector<>vector msgs; // right before a time-critical code, make room for 1000 Message //objects in advancemsgs.reserve(1000); //now call safelyRealTimeStuff(msgs);}//end main()