STL源码剖析之Vector容器【2013.11.15】

欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611 【IT】C/C++/STL/Linux/W


STL源码剖析之Vector容器【2013.11.15】


容器在STL中是和使用者联系最多的。

Vector容器,没什么很多需要注意的。

STL中vector的结构主要成员如下:

start为头部迭代器,作为随机访问的基数。[n] = start + n 

finish为数据尾部迭代器,有效元素的尾部,用来计算,size = finish - start

end_of_storage为容器尾部迭代器,可以计算容器最大容量,capacity = end_of_storage - start


【1】Vector是可变长的序列容器,在内存中占用连续内存。

【2】Vector在增加的元素的时候,会根据容器容量是否足够来重新申请更大的内存块来支持数据量。容量不等于Vector的size。容量 >= size 当容量等于size的是,再插入元素,Vector就会重新申请一块内存,容量大约为容器size的两倍。size以外的空间用作备用空间,用以节省插入时效。

【3】Vector在插入或者删除等,对容器数据分布有改动的时候,将会使迭代器失效。如插入的时候,会使插入点以后的迭代器失效,删除也是一样。

【4】因为Vector是需要保持连续性的容器,所以,在对Vector进行插入和删除的时候,需要对应的移动插入点(删除点)后的所有元素,所以在效率上面是比较大的消耗。

........................


欢迎加入我们的QQ群,无论你是否工作,学生,只要有c / vc / c++ 编程经验,就来吧!158427611 【IT】C/C++/STL/Linux/W


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值