我知道该标准并不强制std::vector
分配连续的内存块,但所有实现都遵循这一点。
假设我希望创建一个多维静态数组的向量。为简单起见考虑二维,以及长度为 N 的向量。也就是说,我希望创建一个具有 N 个元素的向量,例如int[5]
。
我可以确定所有 N*5 整数现在在内存中都是连续的吗?这样我原则上可以通过知道第一个元素的地址来访问所有整数?这个实现是否依赖?
作为参考,我目前在连续内存块中创建 2D 数组的方式是首先制作一个长度为 N 的 float* (动态)数组,将所有 N*5 个浮点数分配到一个数组中,然后将每 5 个元素的地址复制到的第一个数组float*
。