摘要:
vector和array的使用非常相似,区别是vector是动态空间,随着新元素的介入,靠内部机制就可以自动扩充空间以容纳新元素vector的迭代器:由于vector维护的是一个线性空间,所以可以用普通指针作为迭代器。指针也具备随即存取能力,因此vector提供随机访问迭代器。vector的数据结构:线性连续空间。用start和finish指向目前已经被使用的范围中的头尾,并且以迭代器end_of_storage指向整块连续空间(包括备用空间)的末尾。vector实际分配的空间一定大于等于需要的空间,以备将来的扩充。capacity的概念。vector的构造与管理:vector缺省使用allo 阅读全文
posted @ 2012-04-21 16:15
w0w0
阅读(198)
评论(0)
推荐(0)
摘要:
STL的中心思想在于:将数据容器与算法分开,彼此独立设计,然后用胶合剂将他们撮合在一起。迭代器最重要的操作就是对operator*和operator->进行重载为了不暴露容器的内部实现细节,每一种容器都有专属的迭代器,这样就可以把所有的实现细节封装起来不被使用者看到。在迭代器的设计上使用泛型思想:当算法中需要声明一个变量,要用到迭代器所指向的对象的类别(value_type)==>使用参数推到机制万一需要把该类型用于函数的传回值==>声明一个内嵌类型,使用关键词typename但并不是所有的指针类型都是class,如果是原生指针就无法定义内嵌类型==>在泛化设计中提供一 阅读全文
posted @ 2012-04-21 14:24
w0w0
阅读(253)
评论(0)
推荐(0)
摘要:
STL源码剖析学习二:空间配置器(allocator)标准接口:vlaue_typepointerconst_pointerreferenceconst_referencesize_typedifference_typerebindallocator()--default constructorallocator(const allocator<U>&--copy constructor~allocator()--destructoraddress(reference x)const--return address of elemaddress(const_referenc 阅读全文
posted @ 2012-04-21 13:24
w0w0
阅读(249)
评论(0)
推荐(0)
摘要:
STL源码剖析学习一:概论STL所实现的,是依据泛型思维架设起来的一个概念结构。这个以抽象概为主体而非以实际类为主体的结构,形成一个严谨的接口标准。在此接口之下,任何组件都有最大的独立性,并以迭代器胶合起来,或者以配接器互相连接,或者用仿函数动态选择某种策略。六大组件:1.容器:各种数据结构2.算法3.迭代器:容器和算法之间的胶合剂 是“泛型指针”4.仿函数:行为类似函数,可以作为算法的某种策略5.配接器:修饰容器或者仿函数或者迭代器接口的东西6.配置器:负责空间配置和动态管理语法要点:1.静态常量可以在class内部直接初始化一般的变量都是不能在class内部直接初始化的,即使是常量也不行常 阅读全文
posted @ 2012-04-21 11:16
w0w0
阅读(160)
评论(0)
推荐(0)
浙公网安备 33010602011771号