我可能误解了有关分配器的一些概念.但我真的不知道为什么我们需要std::size_t传递一个参数allocate来指示要分配的对象数.参数是用于分配内存区域,如数组还是向量?
如果是,那么我的自定义分配器如何知道先前返回的指针是指向某个区域还是仅指向某个对象?我的分配器是否有责任记录这些指针?
如果他们不是,那么为什么我们需要这个论点呢?
allocator_traits<YourAllocator<T>>::allocate期望为N个类型的对象的连续序列分配内存T.N由size_t参数提供.
如果是,那么我的自定义分配器如何知道先前返回的指针是指向某个区域还是仅指向某个对象?
什么"以前返回指针"?
您的分配器将被告知何时分配以及何时释放内存.当释放发生时,将告知N对于正被释放的分配是什么.您的分配器不需要跟踪任何指针.