在C 11中,std :: vector具有构造函数向量(size_type n),它将默认构造n个项目,这些项目可以与默认的可构造,可移动,不可复制的类一起使用.
但是,与其他所有向量构造函数不同,没有采用分配器的变体,我采用了以下方法:
// Foo is default constructible and moveable,but not copyable const int n = 10; // Want 10 default constructed Foos std::vector<Foo,CustomAllocator> foos(allocator); foos.reserve(n); for (int i = 0; i < n; ++i) foos.emplace_back();
有没有更好的方法来实现这一目标?有没有特定的原因从标准中省略了vector(size_type n,const Allocator& alloc)?