stl vector和c ++:如何在没有默认构造函数的情况下使用.resize?

con*_*roy 29 c++ constructor stl default vector

如何告诉STL,特别是resize()vector中的方法,用默认的构造函数初始化对象,以及使用哪些参数?

例如:

class something {
    int a;
    something (int value);
}

std::vector<something> many_things;

many_things.resize (20);
Run Code Online (Sandbox Code Playgroud)

更一般地说,当需要创建对象并将参数传递给该构造函数时,如何强制STL使用我的构造函数?

在我的情况下,添加默认构造函数不是一个选项,我宁愿不使用指针数组来解决问题.

MSa*_*ers 51

使用2参数重载: many_things.resize(20, something(5));