STL源码剖析之Vector容器【2013.11.15】
2013-11-18 09:44
211 查看
欢迎加入我们的QQ群,无论你是否工作,学生,只要有c
/ vc / c++ 编程经验,就来吧!158427611
STL源码剖析之Vector容器【2013.11.15】
容器在STL中是和使用者联系最多的。
Vector容器,没什么很多需要注意的。
STL中vector的结构主要成员如下:
start为头部迭代器,作为随机访问的基数。
= 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
/ vc / c++ 编程经验,就来吧!158427611
STL源码剖析之Vector容器【2013.11.15】
容器在STL中是和使用者联系最多的。
Vector容器,没什么很多需要注意的。
STL中vector的结构主要成员如下:
start为头部迭代器,作为随机访问的基数。
= 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
相关文章推荐
- STL源码剖析之序列式容器vector
- STL源码剖析之序列式容器vector
- STL源码剖析之五:关联式容器
- STL 源码剖析读书笔记三:序列式容器之 vector、list
- STL源码剖析之List容器【2013.11.18】
- STL源码剖析——关联容器之hash_map
- STL源码剖析 - 第5章 关联式容器 - multiset
- STL源码剖析-关联式容器之hashtable
- STL源码剖析vector
- STL源码剖析——vector
- STL源码剖析之关联式容器基础知识
- STL源码剖析 [容器](二十二)[stl_hash_multimap.h和stl_hash_multiset.h]
- STL源码剖析——关联式容器
- STL源码剖析之vector
- STL学习笔记之容器--vector(二)源码剖析
- STL源码剖析之序列容器list
- [置顶] stl源码剖析之vector
- STL源码剖析之序列容器deque
- STL源码剖析之Deque容器【2013.11.25】
- STL源码剖析——容器配接器之stack