How do I tell STL, specifically for the method resize()
in vector, to initialize objects with a constructor other than default, and with which parameters?
For example:
class something {
int a;
something (int value);
}
std::vector<something> many_things;
many_things.resize (20);
More generally, how do I force STL to use my constructor when it needs to create objects, and pass parameters to that constructor?
In my case adding a default constructor is not an option, and I'd prefer not to use an array of pointers to solve the problem.
Use the 2-argument overload:
many_things.resize(20, something(5));