程序=数据结构+算法,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笔记
C++课堂源码与笔记,需要的朋友请自行下载,如果有C++编程基础的朋友,可以配合视频教程,参考学习。
侯捷——STL和泛型编程笔记1-4讲
STL笔记,强大的软件复用技术,泛型编程,函数模板
高质量c++编程(pdf和doc),Effective c++(chm),More Effective c++(doc和pdf),STL实践指南(doc),Effective STL(pdf),WindowsProgramming.chm,Effective STL读书笔记.doc<br>算法设计与分析.doc<br>
STL学习过程中的代码笔记。在学习STL(标准模板库)的过程中,我发现了许多方便且强大的代码技巧。其中,容器是STL中最常用的部分之一。使用容器可以方便地存储和管理数据,例如使用vector动态数组来存储元素,使用...
高质量c++编程(pdf和doc),Effective c++(chm),More Effective c++(doc和pdf),STL实践指南(doc),Effective STL(pdf),WindowsProgramming.chm,Effective STL读书笔记.doc<br>算法设计与分析.doc<br>...
【C++】核心编程与桌面应用开发资料笔记,内含有C++核心编程+QT+STL笔记,希望对大家有所帮助,望大家多多支持!
模板编程和标准模板库的笔记,如果了解了数据结构,看这个文档就如鱼得水!
C++学习总结(真正的思考总结),包含面向对象思想的理解、模板编程与其他小窍门(有涉及C++11新特性)
本人在达内培训,历经4个月整理的课程笔记1,和课程项目代码 。整理比较辛苦,分要的高,谅解下,都是全套 达内 C++国际软件工程师比较经典的资料.授课内容包括9大核心热门技术: Unix/Linux平台技术 标准C/C++开发...
本人在达内培训,历经4个月整理的课程笔记1,和课程项目代码 。整理比较辛苦,分要的高,谅解下,都是全套 达内 C++国际软件工程师比较经典的资料.授课内容包括9大核心热门技术: Unix/Linux平台技术 标准C/C++开发...
本人在达内培训,历经4个月整理的课程笔记1,和课程项目代码 。整理比较辛苦,分要的高,谅解下,都是全套 达内 C++国际软件工程师比较经典的资料.授课内容包括9大核心热门技术: Unix/Linux平台技术 标准C/C++开发...
c++_STL 入门基础 笔记,包含一些生动的例子 和 讲解,希望这个讲解可以帮到更多的想要学好编程的人
手撕 STL 迭代器源码与 traits 编程技法 超硬核 | 2 万字+20 图带你手撕 STL 序列式容器源码 硬核来袭 | 2 万字 + 10 图带你手撕 STL 关联式容器源码 万字长文 | STL 算法总结 数据结构与算法 数据结构与算法学习 ...
达内c++笔记与代码: 1_Unix 2_C语言 3_C++ 4_数据结构与算法 5_模板_STL 6_linux高级编程 7_Oracle_ProC
有七个阶段:第1阶段C++ 匠心之作 从0到1入门,第2阶段实战-通讯录管理,第3阶段-C++核心编程 资料,第4阶段实战-基于多态的企业职工系统,第5阶段-C++提高编程资料,第6阶段实战-基于STL泛化编程的演讲比赛资料,第...
本人在达内培训,历经4个月整理的课程笔记1,和课程项目代码 。整理比较辛苦,分要的高,谅解下,都是全套 达内 C++国际软件工程师比较经典的资料.授课内容包括9大核心热门技术: Unix/Linux平台技术 标准C/C++开发...
历经4个月整理的课程笔记1,和课程项目代码 。...授课内容包括9大核心热门技术: Unix/Linux平台技术 标准C/C++开发技术 数据结构和算法/STL Unix/Linux系统编程和网络编程 Oralce数据库、PL/SQL和Pro*c开发
各种STL容器的使用,原理分析。 Effective C++读书笔记。 boost-asio官方教程、C++11使用boost-asio示例。 数据结构和算法 常见算法和数据结构题总结 、 剑指offer题解、分类 LeetCode 上算法题目的解题记录。 操作...