【发布时间】:2013-03-27 06:56:55
【问题描述】:
我知道std::vector 元素在内存中保证是连续的。
那么为什么你不能期望一个包含其他向量的向量的总集合是连续的呢?
该向量应该保证其封闭项的连续内存布局,如果这些附件也是向量,那么我希望最顶层向量的全部内容都在连续内存中。
但在这个问题上似乎存在一些关于这是否属实的争论。可以安全地依赖它吗?有些人似乎通过go out of their way 来实现这一点,而我认为这是有保证的。
【问题讨论】:
-
向量不直接存储它们的数据。
-
谢谢,但我不太明白你的意思。
-
向量有一个指向其数据的指针。我想有可能制作一个可以做到这一点的分配器。
-
sizeof(vector)!=vector.size()。只有向量持有的指针是连续的。 -
如果对您有任何用处,我昨天提供了this contiguous solution 给正在考虑将向量向量用于二维矩阵的人。