En C++ 11, std :: vector tiene el constructor vector(size_type n)
que construirá de forma predeterminada n
elementos en su lugar, que se pueden usar con las clases predeterminadas, movibles y no copiables.¿Por qué no hay vector (tamaño_tipo n, const Allocator & alloc) en C++ 11?
Sin embargo, a diferencia de cualquier otro constructor de vector, no hay una variante que tiene un asignador, y he recurrido a lo siguiente:
// 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();
¿Hay una mejor manera de lograr esto? ¿Hay alguna razón específica por la que vector(size_type n, const Allocator& alloc)
haya sido omitido de la norma?
Suena como un defecto en la especificación. Presente un informe, si alguno ya no está allí. –
@NicolBolas ¿hay documentos que describan el proceso para presentar un informe? – rkjnsn
No importa. Ver mi publicación. –