
读书笔记
文章平均质量分 67
吴珝君
这个作者很懒,什么都没留下…
展开
-
Ruminations on C++__使用迭代器
(1)虚拟序列//创建一个读取常量值的输入迭代器 输入迭代器的基本操作++ * != == class Constant_ierator { public: Constant_ierator(int k =0):n(k) { } int operator*()c...原创 2018-10-11 12:02:20 · 157 阅读 · 0 评论 -
Ruminations on C++__链表的反转
/*链表反转*/typedef struct _Node { int value; struct _Node *next;} Node;typedef struct _linkList{Node *next;} LinkList;LinkList* linkListReverse(LinkList *list){ if(!list) retur...原创 2018-10-10 19:29:08 · 218 阅读 · 0 评论 -
Ruminations on C++___泛型算法
泛型算法就是一种对其所作用的数据结构做尽可能少的约束的方式表达的算法以一个简单的查找整数数组中的第一个等于某个值的元素为例/*在这个例子中,我们做了四个约束: 分别是查找的类型是int值 我们对int数组进行查找 我们预先已经知道了元素的书目 我们已经预先知道了第一个元素的地址这些约束条件降低了程序的通用性 为了提高程序的通用性 必须想办法去掉这些约束条件*/const...原创 2018-10-10 11:03:59 · 201 阅读 · 0 评论 -
Ruminations on C++__String类的设计
class String {public: String(char* p){ assign(p, strlen(p)); } String(const String& s){ assign(s.data, s.sz); } ~String(){delete[] data;} void make_cstring(char* p, int len) cons...原创 2018-10-14 20:24:59 · 126 阅读 · 0 评论 -
Ruminations on C++__typename的用法
关于typename的用法,比较为大家所熟知的有一种:类模型引入的声明template<typename T>class Atype{}还有另外一种,就是一种很特别的情况。当使用模板类型中定义的类型时,该怎么办呢?可以使用关键字typename。/*从定义中可以说明 typedef typename T::value_type value_type; ...原创 2018-10-13 16:16:51 · 271 阅读 · 0 评论 -
Ruminations on C++函数对象与函数对象适配器
所谓的函数对象,就是重载了类的()作用符的类对象,其行为类似于函数,因而又叫做仿函数。函数对象提供了一种方法,把将要调用的函数与准备递给这个函数的隐式参数绑定了起来。这样,我们就可以用简单的语法建立起复杂的表达式。与一般程序相比,函数对象允许我们把组合操作作为运行程序的一部分,之所以可以进行这种组合,是因为函数对象可以把函数当做值处理,因而带来了极大的灵活性。这段话我还没有理解。/*以...原创 2018-10-13 15:58:03 · 244 阅读 · 0 评论 -
Ruminations on C++__迭代器适配器
前文所述的5个主要的几个迭代器,都是内置于于STL中的标准容器,用法也只能针对标准容器。STL在不断的演变中,STL的爱好者扩充了迭代器的内容,他们在迭代器的基础上发展而来,叫迭代器适配器,他提供了更多的操作功能,也不仅仅局限于容器,还可以应用于更多方面。正如容器有标准容器和容器适配器,仿函数有标准仿函数和仿函数适配器,这里的迭代器适配器也是一样的道理。显然他们都是在原有迭代器的基础之上发展而来的...原创 2018-10-12 21:57:03 · 138 阅读 · 0 评论 -
Ruminations on C++__算法与迭代器与数据结构
书中弟18章总结中有这么一段话:所谓的泛型算法,就是这样的算法,对于所操作的数据结构的细节信息,只加入最低限度的理解。当然,这是理想情况,实际上是做不到的,作为这样一种折中。STL根据数据结构能够支持的有效操作,将这些数据结构进行分类。然后,对于每一个算法,指出这个算法所需要的数据结构的类别。被分类的不是算法,也不是数据结构,而是用来访问数据结构的类型 也就是迭代器,也就是 输入 ,输出、...原创 2018-10-12 21:17:27 · 196 阅读 · 0 评论 -
Ruminations on C++__迭代器
(1)输入迭代器什么是输入迭代器呢,我们从一个例子出发进行说明.find函数看上去很简单,但是已经足以说明输入迭代器包含的基本要素了。如果一个对象p希望完全模拟指向序列的指针,那么必须有如下操作:解引用(*) 自加(++) 不等于判断(!=)以便实现取出序列某个元素值 并移动到下一个元素 也能够判断是否到达了最后一个元素的操作。为了完善起见 ++操作包括前++ 和后++以及==操作 。同时我...原创 2018-10-10 20:08:03 · 138 阅读 · 0 评论