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