2

建议的副本不直接回答这个特定问题。其中一个只是解决 vector 元素的连续性而不讨论数组,而另一个讨论使用数组而不是 float[N] 而不讨论连续性(这是一个词吗?)。

vector<std::array<float,10>>a of =5是否会size()在内存中产生 50 个连续的浮点数,使得指向vector[0]元素的指针指向这段内存的开始?

4

1 回答 1

4

是的。至少如果你能创造一个。

数组在 C++ 中不可复制,因此您将很难尝试将它们插入到数组中。

更新:是的,vector<array<float, N>>有连续的内存,因为vector有这个要求并且array布局与本机数组兼容,所以没有填充或任何可能在中间的东西。

请注意,vector<vector<float>>不会连续的内存,因为每个向量都有额外的字段。

于 2013-05-14T10:33:53.617 回答