c ++向量 >如何管理内存

问题描述 投票:0回答:1

向量容器将对象保存在连续内存中。对于矢量这样的情况,很容易理解。但是,如果它是向量的向量,例如向量>,那么向量的向量中的每个向量可以具有不同的长度。它如何管理内存?每次我们插入新向量时,它是否分配固定长度的向量?如果是这样,如果在push_back期间第一个向量超出大小,将会发生什么。它会触发向量重新分配和复制/移动的完整向量吗?

c++ vector memory-management
1个回答
0
投票

向量是指向动态数组的指针。如果push_back发现数组中的空间不足,请分配一个更大的新数组,从旧数组中复制所有内容,然后将新值保留在其中。

如果您有向量的向量,则每个内部向量也是如此。

这里您需要了解的是向量的向量(与2D数组不同),不是在内存中是连续的。每个内部向量的数组都可以存储在内存中的任何位置。

© www.soinside.com 2019 - 2024. All rights reserved.