摘要:
STL中容器分为序列式容器和关联式容器,其中vector作为最常用的序列式容器之一。 vector基于array,准确的说是基于分配的连续内存,当内存不够使用时,就在分配一块内存,一般来说(源自《c++ primer》和《STL源码剖析》)再分配内存是内存大小是前一大小的两倍即可。这样有效的防止连续空间在进行数据使用时超出范围的问题。 template<typename T,typename Alloc=alloc> class vector { public: typedef T value_type; typedef value_type*... 阅读全文
摘要:
跟据侯捷的《STL源码剖析》一书中提到的《Design Patterns》一书中关于iterator模式定义:提供一种方法,使之能够依序寻访某个聚合物(容器)所含的各个元素,而又无需暴露该聚合物的内部表达方式。 当然,STL的中心思想在于:将数据容器和算法分开,彼此单独设计,最后再以一帖胶着剂将他们撮合在一起。 迭代器可以看作是一种smart pointer,故要进行内容提领和成员访问,关键的工作就是对operator*和operator->进行重载//忽略模板类定义T &operator*()const {return *pointee;} //其中T作为模板参数T* oper 阅读全文