blu*_*rni 6 c++ memory-management c++11
我无法在C++ 11标准中找到是否需要符合标准的分配器来返回指向连续内存块的指针.
std::vector(23.3.6.1/1)上的连续存储要求似乎意味着这样(否则似乎不可能std::vector与任意符合标准的分配器一起使用).但任何澄清都是最受欢迎的.
等效的问题是:可以我总是通过由返回的存储块移动allocate()通过指针算术(可能是通用的转换后pointer通过返回类型allocate()以++指针作为实例描述的纯纯粹的C 这里)?
是的,它必须是连续的,因为指针算法allocator::pointer按预期工作.
如果你考虑一下,返回的内存很少是物理连续的.它看起来只是连续的,因为现代CPU具有虚拟内存,并X*在此虚拟内存中进行解释.
| 归档时间: |
|
| 查看次数: |
643 次 |
| 最近记录: |