C++ vector实现关键点和使用注意事项

       C++中vector是最常用的一个容器,本文参考《C++STL中文版》这本书中有关vector的章节,对vector容器的实现和应用做一些关键性的说明,便于读者对vector进行更好的掌握和运用。

1 vector实现的关键点

(1)元素存储空间的增长方式,建议使用参考书籍的增长方式,每次增长的空间至少是原来空间的一半,即N=(N+N/2),注意存储空间利用率和当元素增长时程序的运行性能之间的平衡。

(2)实现时vector内的成员对象只有一个内存分配器对象和三个指向元素储存空间的指针(First、Last和End)。

(3)vector的特例化模板vector<bool>的存在主要是对于bool类型的元素存储和操作时在空间和时间上的优化。

(4)vector一般保留一个大小大于实际所需大小的数组空间,多余的存储空间在成为有效数组的一部分前保持为未构造状态。

(5)插入insert元素时需要移动元素的位置,移动时需要注意内存重叠,使元素的拷贝移动方向与元素的增长方向相反可解决内存重叠问题。

2 vector使用注意事项:

(1)max_size函数返回的是vector中的内存分配器allocator能够分配的最大内存空间,即vector所能管控的最大序列长度,注意和capacity的区别。<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值