C++ 向量<;std::数组<;浮动,10>&燃气轮机;大小为5会导致50个连续浮点?

C++ 向量<;std::数组<;浮动,10>&燃气轮机;大小为5会导致50个连续浮点?,c++,C++,建议的副本并不能直接回答这个问题。其中一个只讨论向量元素的邻接性而不讨论数组,而另一个讨论数组而不是float[N]的使用而不讨论邻接性(这是一个词吗?) size()=5的vector是否会在内存中产生50个连续的浮点,从而指向vector[0]元素的指针指向此内存段的开始?是。至少如果你能创造一个 数组在C++中是不可复制的,所以在数组中插入它们会很困难。 更新:是的, vector 具有连续的内存,因为向量有这样的要求,代码>数组< /C> >与本地数组兼容,因此没有填充或中间的任何东西。

建议的副本并不能直接回答这个问题。其中一个只讨论向量元素的邻接性而不讨论数组,而另一个讨论数组而不是float[N]的使用而不讨论邻接性(这是一个词吗?)


size()
=5的
vector
是否会在内存中产生50个连续的浮点,从而指向
vector[0]
元素的指针指向此内存段的开始?

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

数组在C++中是不可复制的,所以在数组中插入它们会很困难。 <>更新:是的,<代码> vector 具有连续的内存,因为<代码>向量有这样的要求,<>代码>数组< /C> >与本地数组兼容,因此没有填充或中间的任何东西。


请注意,
vector
具有连续内存,因为每个向量都有附加字段。

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

数组在C++中是不可复制的,所以在数组中插入它们会很困难。 <>更新:是的,<代码> vector 具有连续的内存,因为<代码>向量有这样的要求,<>代码>数组< /C> >与本地数组兼容,因此没有填充或中间的任何东西。


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

好吧,没有办法用任何东西填充该向量,因此问题点是没有意义的。它不是重复的-另一个问题是关于在连续区域中放置标量;OP询问数组向量。@dasblinkenlight第一个副本讨论内存是否连续,这就是问题所在。数组向量实际上不可能的问题是另一个问题;)但当然,只有在已经选择了正确的数组类型,即
std::array
而不是原始数组的情况下,它才是连续的回答才有帮助。@特洛伊木马是真的。所以我
std::forward(“谢谢”)
;)@费洛西:答案就在那里。只要把它们结合起来。1) 你的构造是不可能的2)向量内存是连续的。好吧,没有办法用任何东西填充该向量,因此问题点是没有意义的。它不是重复的-另一个问题是关于将标量放置在连续区域中;OP询问数组向量。@dasblinkenlight第一个副本讨论内存是否连续,这就是问题所在。数组向量实际上不可能的问题是另一个问题;)但当然,只有在已经选择了正确的数组类型,即
std::array
而不是原始数组的情况下,它才是连续的回答才有帮助。@特洛伊木马是真的。所以我
std::forward(“谢谢”)
;)@费洛西:答案就在那里。只要把它们结合起来。1) 你的构造是不可能的2)向量内存是连续的。谢谢,我更新了问题。“因为每个向量都有额外的字段”实际上,这不是原因。原因是因为向量的实际数据存储在其他地方(间接),所以它们的内容可以分布在整个内存中,而不仅仅是被它们的“开销”分开。向量或多或少是指向它们的数据+一些额外信息(我猜大小+分配大小)的指针。谢谢,我更新了这个问题。“因为每个向量都有额外的字段”实际上,这不是原因。原因是因为向量的实际数据存储在其他地方(间接),所以它们的内容可以分布在整个内存中,而不仅仅是被它们的“开销”分开。向量或多或少是指向其数据的指针+一些额外信息(我猜大小+分配大小)。