为什么矢量保证不是连续的?(或者是吗?)

joh*_*ers 1 c++ stdvector

我知道std::vector元素在内存中保证是连续的.

那么为什么你不能指望包含其他向量的向量使总集合连续?

该向量应该保证其封闭项的连续内存布局,如果这些外壳也是向量,那么我希望最顶层向量的全部内容在连续的内存中.

但是在这个问题上似乎存在一些关于这是否属实的争论.一个人可以安全地依赖它吗?有些人似乎走出自己的方式来实现这一目标,而我认为这是保证.

Mat*_*son 5

向量向量中的每个向量都是一个单独的对象,因此负责它的存储.所以,不,它绝不是保证是连续的,事实上我真的看不到可能发生的情况是存储在外部向量中的数据和它的内部向量是一个连续的内存块.

  • 如果真的想要,自定义分配器可以管理它.至于是否以及为什么要这样做...... (2认同)