C++ 11では、std :: vectorにコンストラクタvector(size_type n)
があり、既定のコンストラクタn
が用意されています。これはデフォルトのコンストラクタブルで移動可能なコピー可能クラスで使用できます。C++ 11にベクトル(size_type n、const Allocator&alloc)がないのはなぜですか?
しかし、他のすべてのベクトルのコンストラクタとは異なり、アロケータをとる一切の変異体が存在しない、と私は次のように頼っています
// 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)
は標準から省略されましたか?
仕様の不具合のようです。レポートがない場合は、レポートを提出してください。 –
@ NicolBolasには、レポートを提出するプロセスを記述した文書がありますか? – rkjnsn
気にしないでください。私のポストを参照してください。 –