大小为 5 的 vector<std::array<float,10>> 是否会导致 50 个连续的浮点数?

Does a vector<std::array<float,10>> of size 5 result in 50 contiguous floats?

本文关键字:lt gt 连续 是否 浮点数 float vector 小为 std array      更新时间:2023-10-16

建议的重复并不能直接回答这个特定的问题。其中一个只处理vector元素的邻接性而不讨论数组,另一个讨论使用数组代替float[N]而不讨论邻接性(这是一个词吗?)

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

是。如果你能创建一个的话。

数组在c++中是不可复制的,所以你将很难在数组中插入它们。

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

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