0
可能有人確認之間的差:陣列VS矢量,存儲器佈局
class A{
public:
std::vector<int> a;
std::vector<int> b;
};
和
class B{
public:
std::array<int, 1000> a;
std::array<int, 1000> b;
};
類A
該對象包含兩個指針到兩個隨機分配區域在堆上?
相比之下,第二類對象將具有連續的內存分配(取決於對象的位置 - 堆棧或堆),這將是連續的。這些數組將會彼此相鄰(類A
不會出現這種情況)?
基本上,是的,雖然a)'std :: vector'通常會存儲多個單個指針,並且b)不能保證'B :: a'和'B :: b'不會有填充(儘管在實踐中很可能是這種情況)。 – 2015-02-08 22:41:24
是的,這是正確的。 – 2015-02-08 22:41:36
此外,矢量將其數據存儲在連續的內存塊中以及... – 2015-02-08 22:43:13