STL标准模版库
happypai123
软件开发工程师,菜鸟程序员
展开
-
STL概述
STL中心思想:将数据容器(containers)和算法(algorithms)分开,彼此设计独立设计,最后再以一帖胶着剂将它们撮合在一起。 如何设计出两者之间的良好胶着剂是STL的难题和关键 容器,算法,迭代器(iterator,扮演粘胶角色)的合作展示,以find()为例,只要给予不同的迭代器,find()便能够对不同的容器进行查找操作。翻译 2014-05-04 14:09:39 · 394 阅读 · 0 评论 -
STL学习之Vector
vector的数据安排及操作与array非常相似,两者唯一的差别在空间的运用方面,array是静态空间,vector是动态空间,随着元素加入,vector内部机制会自行扩展空间以容纳新元素。因此vector的运用对内存的合理利用有很大帮助。 vector的实现技术,关键在于大小的控制以及重新分配时数据移动效率,SGI vector的空间分配策略,新元素插入时,首先检查是否还有备用空间,如果有直原创 2014-05-14 14:25:45 · 400 阅读 · 0 评论 -
STL基础之list
相对于vector的连续线性空间,list就显得复杂,好处在于,每次插入或删除一个元素,就配置或释放一个元素空间,因此list对空间的运用绝对精准,不存在任何浪费。而且,对任何位置的元素的插入或元素移除,list永远是常数时间。 list和vector是两个最常见的容器,如果使用,必须视元素的多寡、构造复杂度、元素存取行为的特性而定。 list节点: 双向链表节点结构 template原创 2014-05-14 16:23:25 · 447 阅读 · 0 评论