`
zuroc
  • 浏览: 1291896 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

读<泛形编程与STL>笔记

    博客分类:
  • C++
阅读更多

程序=数据结构+算法,STL实现了算法与数据结构的分离(解耦合,decouple).


   一 iterator

stl中算法通过iterator作用于数据的线性区间(linear range).

iterator是类似于指针的东东.它有几种不同的类型(不是C++语言中的类型,是一种concept(约定)),分别提供各种层次的功能,以满足不同算法的需要.
比如:

input iterator
支持:
 == * ++
不支持:
 = -- > <
 mutlipass(多次历遍)
 同时拥有两个input iterator(不知道术语是什么,望大侠赐教)

等等,可以参见<泛形编程与STL>.

iterator_traits是用来定义iterator的指向物的数据类型的(听说0x标准会增加typeof,有了typeof是不是可以简化一下???who can tell me?).

iterator_traits中还有一项iterator_category,是一个空类的typedef,用来标识iterator的类型(如input iterator).
可以配合函数的重载,针对不同类型的iterator,写其最有效率的算法.

 

   二 函数对象(function object)

"羊吃草"可以理解"将羊这个函数对象 通过吃这种算法 作用于草这个区间".
function object相当于羊,通过替换function object为牛,马,我们可以实现不同的目的(比如羊吃草是为了产毛,牛吃草是为了耕地,马吃草为了赶路).

function object中有一类叫做adaptable function object,它们作用类似iterator_traits,不过没有单独写成一个object.他们通过了自身参数和返回值的typedef.
可以用于function object adapter中,比如一个作用类似于"!"(not)的function object adapter.
stl中通过adaptable function object的基类,以方便使用.

刚看到这里,下次继续...................

 
分享到:
评论

相关推荐

    C++进阶STL笔记资料.zip

    C++进阶STL笔记

    C++进阶STL源码笔记

    C++课堂源码与笔记,需要的朋友请自行下载,如果有C++编程基础的朋友,可以配合视频教程,参考学习。

    侯捷-STL和泛型编程笔记1-4讲

    侯捷——STL和泛型编程笔记1-4讲

    STL模板知识点笔记

    STL笔记,强大的软件复用技术,泛型编程,函数模板

    C++ STL书籍集

    高质量c++编程(pdf和doc),Effective c++(chm),More Effective c++(doc和pdf),STL实践指南(doc),Effective STL(pdf),WindowsProgramming.chm,Effective STL读书笔记.doc&lt;br&gt;算法设计与分析.doc&lt;br&gt;

    STL学习过程中的代码笔记

    STL学习过程中的代码笔记。在学习STL(标准模板库)的过程中,我发现了许多方便且强大的代码技巧。其中,容器是STL中最常用的部分之一。使用容器可以方便地存储和管理数据,例如使用vector动态数组来存储元素,使用...

    CC++VCSTL书籍和算法

    高质量c++编程(pdf和doc),Effective c++(chm),More Effective c++(doc和pdf),STL实践指南(doc),Effective STL(pdf),WindowsProgramming.chm,Effective STL读书笔记.doc&lt;br&gt;算法设计与分析.doc&lt;br&gt;...

    【C++】核心编程与桌面应用开发资料笔记.rar

    【C++】核心编程与桌面应用开发资料笔记,内含有C++核心编程+QT+STL笔记,希望对大家有所帮助,望大家多多支持!

    stl标准模板库学习笔记.docx

    模板编程和标准模板库的笔记,如果了解了数据结构,看这个文档就如鱼得水!

    C++编程笔记

    C++学习总结(真正的思考总结),包含面向对象思想的理解、模板编程与其他小窍门(有涉及C++11新特性)

    达内c++开发课程培训笔记代码4个月全套整理

    本人在达内培训,历经4个月整理的课程笔记1,和课程项目代码 。整理比较辛苦,分要的高,谅解下,都是全套 达内 C++国际软件工程师比较经典的资料.授课内容包括9大核心热门技术: Unix/Linux平台技术 标准C/C++开发...

    达内c++开发课程培训笔记3代码4个月全套整理

    本人在达内培训,历经4个月整理的课程笔记1,和课程项目代码 。整理比较辛苦,分要的高,谅解下,都是全套 达内 C++国际软件工程师比较经典的资料.授课内容包括9大核心热门技术: Unix/Linux平台技术 标准C/C++开发...

    达内c++开发课程培训笔记2代码4个月全套整理

    本人在达内培训,历经4个月整理的课程笔记1,和课程项目代码 。整理比较辛苦,分要的高,谅解下,都是全套 达内 C++国际软件工程师比较经典的资料.授课内容包括9大核心热门技术: Unix/Linux平台技术 标准C/C++开发...

    STL基础教程C++.docm

    c++_STL 入门基础 笔记,包含一些生动的例子 和 讲解,希望这个讲解可以帮到更多的想要学好编程的人

    C++ 后台工程师面试宝典

    手撕 STL 迭代器源码与 traits 编程技法 超硬核 | 2 万字+20 图带你手撕 STL 序列式容器源码 硬核来袭 | 2 万字 + 10 图带你手撕 STL 关联式容器源码 万字长文 | STL 算法总结 数据结构与算法 数据结构与算法学习 ...

    达内c++笔记与代码1

    达内c++笔记与代码: 1_Unix 2_C语言 3_C++ 4_数据结构与算法 5_模板_STL 6_linux高级编程 7_Oracle_ProC

    黑马程序员C++从0到1笔记教程-pdf带目录

    有七个阶段:第1阶段C++ 匠心之作 从0到1入门,第2阶段实战-通讯录管理,第3阶段-C++核心编程 资料,第4阶段实战-基于多态的企业职工系统,第5阶段-C++提高编程资料,第6阶段实战-基于STL泛化编程的演讲比赛资料,第...

    达内c++开发课程培训笔记5代码4个月全套整理

    本人在达内培训,历经4个月整理的课程笔记1,和课程项目代码 。整理比较辛苦,分要的高,谅解下,都是全套 达内 C++国际软件工程师比较经典的资料.授课内容包括9大核心热门技术: Unix/Linux平台技术 标准C/C++开发...

    达内科技 c++ 课件与笔记【完整版】

    历经4个月整理的课程笔记1,和课程项目代码 。...授课内容包括9大核心热门技术: Unix/Linux平台技术 标准C/C++开发技术 数据结构和算法/STL Unix/Linux系统编程和网络编程 Oralce数据库、PL/SQL和Pro*c开发

    leetcode题库-Codes:编程学习笔记

    各种STL容器的使用,原理分析。 Effective C++读书笔记。 boost-asio官方教程、C++11使用boost-asio示例。 数据结构和算法 常见算法和数据结构题总结 、 剑指offer题解、分类 LeetCode 上算法题目的解题记录。 操作...

Global site tag (gtag.js) - Google Analytics