标准库
文章平均质量分 72
dummyedu
这个作者很懒,什么都没留下…
展开
-
stl_iterator_base.h
定义了5种基本的迭代器类型:输入,输出,前向, 双向,随机迭代器, 相互关系及定义如下。struct input_iterator_tag {};struct output_iterator_tag {};struct forward_iterator_tag : public input_iterator_tag {};struct bidirectional_iterator_tag :原创 2007-01-08 16:08:00 · 1004 阅读 · 0 评论 -
stl_alloc.h
sgi stl的allocate由2级配置器组成, 默认为第二级, 第二级配置器分配内存的时候, 首先查看需要分配的内存块大小,如果大于160, 调用第一级配置器, 否则用内存池来分配内存。 这样对小块内存的分配效率高,不容易产生内存碎片。一级配置器:template class __malloc_alloc_template {二级配置器template class __default_allo原创 2007-01-08 16:04:00 · 2423 阅读 · 0 评论 -
traits技巧
traits意思为特性, traits技巧就是根据迭代器的类型萃取出迭代器相关的类型。 为了实现这个目标, 迭代器需要定义一些类型名称value_type, difference_type, pointer, reference, iterator_category, 然后通过偏特化, 也可以对原生指针有很好的支持. 如果某个迭代器没有遵行stl的类型定义约定,那么这个迭代器就不能兼容于整个s原创 2007-01-08 16:07:00 · 669 阅读 · 0 评论 -
stl_iterator.h 一
一. back_insert_iterator功能:用于在后部插入元素, 迭代器类型: output_iterator_tag. 实现:template class back_insert_iterator {protected: _Container* container;public: typedef _Container container_type; ty原创 2007-01-08 17:24:00 · 1144 阅读 · 0 评论 -
stl_iterator.h 二
六. istream_iteratoristream_iterator的目的是从输入流中读取数据, 迭代器类型:input_iterator_tag. 接收一个输入流为参数, istream_iterator保存这个输入流,并且每次operator++的时候从输入流中读取一个数据, operator*取到所读取数据的值, operator->是取得所读取数据的引用。 从源码来看,一个输入流传原创 2007-01-08 18:03:00 · 1180 阅读 · 0 评论