我有一个案例,我希望在std :: vector中存储资源列表.我认为,我的选择如下:
选项1可以构造无效资源,选项2强制我使用堆.
我在这里错过了任何选择吗?
您不需要默认构造函数来获取实例向量.
唯一的限制是当类没有默认构造函数时,你不能使用带有默认参数的vector :: resize.
vec.resize(20); // requires default constructor
Run Code Online (Sandbox Code Playgroud)
但你可以给vector :: resize一个默认对象:
std::vector<foo> vec;
vec.resize(20, foo(10)); // give a sample object since foo has not default constructor
Run Code Online (Sandbox Code Playgroud)