Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
vector 在每种类型的构造函数中都有这个
const allocator_type& alloc = allocator_type()
为什么是常量?我看不出这有什么用。我可以看到传递了一个分配器,因此多个向量可以共享同一个池,但可以与另一组向量分开。但是,使用 const 是否意味着他们只会复制实例数据?复制一个池或任何它似乎没有用。
为什么是常量?
分配器应该具有值语义,这意味着向量按值存储它(注意get_allocator()按值返回)。所以构造函数可以很容易地通过 const 引用获取分配器并复制它。
get_allocator()
实际上,将分配器作为const引用传递并将其复制到容器中可以简化事情。否则,如果只传入一个引用,则必须确保分配器不会在容器之前被销毁。您只需要在其副本之间共享分配器状态。您只需将游泳池放在shared_ptr.
const
shared_ptr