C++的Vector是怎么实现的?

C++的Vector是如何实现的??如题[解决办法]看源码确实比较清楚,要点是:1、一般定义一个vector后,申请一个固

C++的Vector是如何实现的??
如题

[解决办法]
看源码确实比较清楚,要点是:
1、一般定义一个vector后,申请一个固定个数元素大小的空间,比如8个。
2、如果向vector中插入单个元素,超过当前容量,则将容量扩大一定的比例,比如2倍。这个操作需要重新申请空间,元素拷贝执行bit拷贝。
3、如果向vector中一次插入多个元素,根据算法一次重新申请足够的空间。

[解决办法]
Vector的储存体本质上还是一个数组,只是在插入数据时如果这个数组的容量不够 它会根据某种算法依据现有数组的大小然后重新建立另外一个数组,在把现有数据的内容copy过来,在这点上java里的String 类完全模仿这点。另外 在访问上 stl 为了跟其他容器统一 在储存体数组上还建立了 iterator 等机制。
[解决办法]
如果真的好奇心足够强,就找《STL源码剖析》看
[解决办法]
> > 2、如果向vector中插入单个元素,超过当前容量,则将容量扩大一定的比例,比如2倍。这个操作需要重新申请空间,元素拷贝执行bit拷贝。

未必是bit拷贝。