gpt4 book ai didi

c++ - 是否需要标准分配器来分配连续内存?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:19:05 25 4
gpt4 key购买 nike

我在 C++11 标准中找不到任何指示是否需要符合标准的分配器来返回指向连续内存块的指针。

std::vector (23.3.6.1/1) 的连续存储要求似乎暗示了这一点(否则似乎无法使用 std::vector 与任意符合标准的分配器)。但欢迎任何澄清。

一个等效的问题是:我是否可以始终通过指针算法在 allocate() 返回的内存块中移动(可能在转换 返回的通用 pointer 类型之后>allocate() 到一个普通的原始 C++ 指针,如描述的实例 here )?

最佳答案

是的,它必须是连续的,因为 allocator::pointer 上的指针算法按预期工作。

如果您考虑一下,返回的内存很少在物理上是连续的。它看起来是连续的,因为现代 CPU 有虚拟内存,并且 X* 是在这个虚拟内存中解释的。

关于c++ - 是否需要标准分配器来分配连续内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17878011/

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