博客专栏  >  编程语言   >  STL源码分析

STL源码分析

根据《STL源码剖析》,记录自己的学习笔记。

关注
1 已关注
24篇博文
  • C++模板Queue

    《C++ primer》中的一个例子,ganjue

    2014-09-05 21:55
    941
  • STL算法实现

    写了一点STL算法,模板biancheng

    2014-09-03 16:26
    758
  • C++简易list

    list不同于vector,每个节点的结构需要自行定义,迭代器属于双向迭代器(不是随即迭代器),也需要自行定义。和通用迭代器一样,list的迭代器需要实现的操作有:++、--、*、->、==、!=。节...

    2014-08-28 14:43
    1106
  • C++简易vector

    好久没动手写一点C++程序了,以后没事多模仿STL吧,虽然达不到标准的STL的程序,但简单的功能还是要实现的。STL确实博大精深:泛型编程、容器、算法、适配器...有的是内容可以学。下面是根据STL源...

    2014-08-25 19:07
    1142
  • 【STL】适配器(adapters)

    定义:将一个class的接口转换为另一个class的接口,使原本因接口不兼容而不能合作的classes,可以一起运作。适配器扮演者轴承、转换器的角色。 分类: 1、容器适配器:改变容器接口。 ST...

    2014-05-22 09:59
    1354
  • 【STL】仿函数

    仿函数就是函数对象,只不过仿函数是老的叫法。仿函数和函数指针都可以作为参数传入函数,但仿函数的优势在于,它对类型抽象度高,并且能够和函数适配器进行匹配,但函数指针却不行。 类似于迭代器需要包...

    2014-05-19 10:21
    770
  • 【STL】算法 — sort

    能使用STL的sort系列算法的前提是容器的迭代器必须为随机迭代器。所以,vector和deque天然适用。STL的sort算法采用了一些策略,在不同情况下采用不同的排序算法,以达到各种算法优势互补的...

    2014-05-16 10:54
    978
  • 【STL】算法 — partial_sort

    partial_sort接受一个middle迭代器,使序列中的middle-first个最小元素以递增顺序排序,置于[first, middle)内。下面是测试代码: #include #inclu...

    2014-05-15 12:05
    2564
  • 【STL】顺序容器 — stack

    具有修改某物接口,形成另一种风貌之性质者,称为适配器。stack便是以deque为底层容器,适当封闭一些功能而形成一种具有“先进后出”特性,并不允许遍历行为的容器适配器。因为不能遍历容器,故stack...

    2014-05-14 15:53
    721
  • 【STL】顺序容器 — queue

    作为一种先进先出数据机构,同样不允许遍历行为,不存在迭代器。同stack一样,queue也是将deque作为底层容器。 源码如下: template > class queue { ...

    2014-05-14 15:53
    655
  • 【STL】顺序容器 — priority_queue

    拥有权值的queue,权值最高者永远排在最前面。priority_queue以vector为底层容器,配合heap的一套泛型算法,就能实现相应功能。 代码如下: template , ...

    2014-05-14 15:54
    741
  • 【STL】顺序容器 — slist

    slist属于单链表,不在标准规格之内,是SGI STL特有的一种顺序容器。由于slist的迭代器属于前向迭代器,不能往前走,所以插入操作和list有所不同。根据STL的习惯,插入操作会将新元素插入于...

    2014-05-14 15:56
    773
  • 【STL】construct()和destroy()

    STL定义了五个全局函数,作用于未初始化的空间上。 其中两个全局函数construct()和destroy()负责对象的构造和析构,它们隶属于STL标准规范。 构造对象直接使用定位new:...

    2014-05-14 15:58
    921
  • 【STL】空间配置器

    STL定义了两种空间配置器: allocator:位于alloc:在包含以下头文件,将功能分离: 全局函数construct()/destroy():位于,用于构造/析构对象。配置器a...

    2014-05-14 15:59
    865
  • 【STL】函数适配器

    《C++ primer》中只说了适用于函数对象的适配器,其实还有针对函数和成员函数的适配器。这些适配器使我们能够将函数/成员函数当作仿函数使用,例如搭配各种泛型算法。从本质上说,是因为让这些函数变成为...

    2014-05-14 16:01
    868
  • 【STL】迭代器以及“特性萃取机”iterator_traits

    迭代器是一种行为类似指针的对象,而指针的各种行为中最常见的便是解引用(*)和成员访问(->),此外还有operator++。因此,迭代器最重要的编程工作是对operator*和operator->进行...

    2014-05-14 16:02
    1173
  • 【STL】顺序容器 — heap

    heap不属于STL容器,它扮演者priority queue的助手。heap是一种完全二叉树,可由数组来实现,但heap需要动态改变大小,所以最终选择了vector作为底层容器。STL默认提供最大堆...

    2014-04-30 09:30
    933
  • 【STL】关联容器 — 红黑树

    set、map、multiset、multimap四种关联式容器的内部都是由红黑树实现的。在STL中红黑树是一个不给外界使用的独立容器。既然是容器,那么就会分配内存空间(节点),内部也会存在迭代器。关...

    2014-05-07 11:17
    1187
  • 【STL】关联容器 — set

    set中的key就是value,value就是key,并且key是唯一的,利用红黑树有序地存储(红黑树在插入时自动调整)。正因为有序,所以无法通过迭代器随意修改key,否则顺序会打乱。set的底层容器...

    2014-05-09 13:56
    691
  • 【STL】关联容器 — map

    和set类似,也采用了rb_tree作为底层容器,但每个节点是一个pair对象,它关联了键值和实值。键值不允许修改,但实值是可以修改的,等下的代码也会有所说明。 下面是map的代码框架: ...

    2014-05-09 13:56
    767

img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部