gpt4 book ai didi

c++ - 分配器中的每个对象数据?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:39:26 24 4
gpt4 key购买 nike

什么是“分配器中的每个对象数据”。我似乎无法找到这意味着什么。任何人都对这在 C++ 语言方面的含义有很好的解释或链接?


澄清

第 19.4.2 节“C++ 编程语言(特别版)”pg。第573章

“类似地,如果允许分配器完全通用,则允许分配器分配任意类型元素的重新绑定(bind)机制将必须更加精细。因此,假定标准分配器不保存每个对象的数据,标准容器的实现可能会利用这一点。”

最佳答案

每个对象的数据或本地状态是指分配器类中的任何非静态数据成员。

问题是目前(在 c++03 中)不支持具有所谓本地状态的分配器。这通常被认为是当今 c++ 中分配器模型的缺陷。

通读this详细介绍自定义分配器设计的文章。 设计 下的一段专门解决了包含本地状态的分配器的一些缺陷。

简而言之,标准库中的某些操作当前要求特定类型的对象由分配器的一个实例安全地分配并由分配器的另一个实例释放(两个分配器属于同一类型 - 当然!)。例如,在实现 list::splice 时可能就是这种情况。如果允许分配器具有本地状态,这可能会变得棘手......

在即将到来的 c++0x 修订版中,似乎允许分配器合并本地状态,查看作用域分配器部分 here .

希望这对您有所帮助。

关于c++ - 分配器中的每个对象数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7048403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com