c++中vector的存储问题

2025-02-27 12:55:01
推荐回答(2个)
回答1:

c++中的stl除了平常使用的vector、map之类的还有一个组件叫Allocator。其实是stl各类数据结构中统一的负责内存分配的组件。Allocator很少被显示的调用,但其实各类stl数据结构在初始化的时候都支持显示的指定Allocator组件。各类结构中的size和capacity函数数量的不一致就是Allocator导致的。size是当前容器中元素的数量。capacity是当前容易能够容纳元素的数量。其中capacity的变化就是Allocator重新申请内存导致的。所以说stl的容器实际上都是逻辑概念,他们实现仅仅是相应数据结构的使用方法,并不涉及真正的内存组织结构,内存住址结构都是由Allocator实现的。也就是说vector叫顺序表、list是链表,但实际上在内存上list也可能是顺序的,只不过list实现了链表的相应功能而已。

回答2:

存的就是你给的类型,是指针才是存地址,否则一律存数据