Trong C++ 11, std :: vector có hàm tạo vector(size_type n)
sẽ mặc định xây dựng n
các mục tại chỗ, có thể được sử dụng với các lớp cấu hình mặc định, di động, không thể sao chép được.Tại sao không có vector (size_type n, const Allocator & alloc) trong C++ 11?
Tuy nhiên, không giống như tất cả các nhà xây dựng vector khác, không có biến thể mà phải mất một cấp phát, và tôi đã phải dùng đến những điều sau đây:
// 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();
Có cách nào tốt hơn để thực hiện điều này? Có lý do cụ thể nào vector(size_type n, const Allocator& alloc)
bị bỏ qua khỏi tiêu chuẩn không?
Âm thanh như lỗi trong đặc điểm kỹ thuật. Gửi báo cáo về nó, nếu chưa có báo cáo. –
@NicolBolas có tài liệu mô tả quy trình nộp báo cáo không? – rkjnsn
Đừng bận tâm. Xem bài đăng của tôi. –