首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >c++ vector<vector<int>>如何管理内存

c++ vector<vector<int>>如何管理内存
EN

Stack Overflow用户
提问于 2019-10-29 20:42:29
回答 1查看 91关注 0票数 1

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

EN

回答 1

Stack Overflow用户

发布于 2019-10-29 21:03:38

vector包含指向连续内存块的指针。当内存耗尽时,它会分配一个新的内存块。向量的vector只是指向内存块的指针的vector。虽然每个内存块是一个连续块,但它们不一定是相邻的,也就是说,当一个向量结束时,下一个向量开始时,几乎总是存在一个空白。

为什么不一定而且几乎总是语义学?因为它取决于您正在使用的内存分配器和操作系统内部。最终,为用户空间程序分配和服务内存块是操作系统的工作之一。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58615132

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档