C++ vector容量能否超过系统RAM?插入至内存溢出时的上限是什么?
C++ vector内存不足时的大小限制问题
若持续向C++的vector容器中插入元素,直至触发内存不足异常,请问最终vector的大小受限于以下哪一项?
- 系统RAM的大小
- 辅助内存的大小(因使用虚拟内存)
答案:辅助内存的大小(因使用虚拟内存)
现代操作系统采用虚拟内存机制,C++程序申请的内存属于虚拟地址空间范畴。vector分配内存时,是向操作系统请求虚拟内存,而非直接绑定物理RAM。当物理RAM不足时,系统会将暂时闲置的内存数据置换到磁盘上的交换空间(属于辅助内存),只有当整个虚拟内存空间(物理RAM+交换空间)被耗尽,无法为vector分配新内存时,才会触发内存不足异常。因此vector的最终大小受限于包含虚拟内存的辅助内存总大小。
内容的提问来源于stack exchange,提问作者pasha
相关产品推荐
相关产品推荐

