c++中vector的存储问题

vector用的顺序存储
但是它存的是什么?
比如vector<int>它每个元素存的是每个int的地址,还是int本身;
还有vector<class> class是一个需要2个字节存储空间的类,它是把每个对象顺序存储在一起,还是把地址顺序存在一起;
就是说,当我有vector<class>::iterater i,j分别指向第一第二个元素;j-i等于1还是等于2;

c++中的stl除了平常使用的vector、map之类的还有一个组件叫Allocator。其实是stl各类数据结构中统一的负责内存分配的组件。Allocator很少被显示的调用,但其实各类stl数据结构在初始化的时候都支持显示的指定Allocator组件。各类结构中的size和capacity函数数量的不一致就是Allocator导致的。size是当前容器中元素的数量。capacity是当前容易能够容纳元素的数量。其中capacity的变化就是Allocator重新申请内存导致的。所以说stl的容器实际上都是逻辑概念,他们实现仅仅是相应数据结构的使用方法,并不涉及真正的内存组织结构,内存住址结构都是由Allocator实现的。也就是说vector叫顺序表、list是链表,但实际上在内存上list也可能是顺序的,只不过list实现了链表的相应功能而已。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-23
存的就是你给的类型,是指针才是存地址,否则一律存数据
相似回答