- 博客(8)
- 资源 (1)
- 收藏
- 关注
原创 C++ 黑白棋游戏的实现
时光荏苒。。眨眼间半年过去了。半年间我的人生轨迹经历了重大的改变。我最终还是决定把我在去年暑假里实现的这个C++的黑白棋游戏发布在我的CSDN博客上。这或许是我写的最后一个C++程序了。记得当时,7月份暑假一开始我就读完了《C++程序设计语言》的第15章 类层次结构,并开始着手实现这一困难的习题。毫无疑问,这是我实现过的最大、也是最”好玩“的一个C++项目。单枪匹马地,我在查阅了大量资料和参考
2013-02-09 15:32:17 4869 3
原创 C++ 基于红黑树RBTree的关联容器Map类
这道题尽管只有一句话,我却花了整整5天的时间,查阅了大量资料,来实现这个Map。毫无疑问,这道题的难度要远远超出了上一节的基于Vector向量类实现的Map,也因此,这个基于自平衡二叉树数据结构的Map,运行效率也要高效许多。注:这里,我并没有找到关于“斜树”的任何资料。我仔细查阅了一下维基百科上的平衡二叉树条目,这里的“斜树”,我认为应该是指AVL树。当然,AVL树也是一种非常流行的平衡二叉
2012-07-18 16:44:32 5489
原创 基于Vector实现的Map类 《C++程序设计语言》第13章
《C++程序设计语言》 习题13.9[8]这是一道关于C++模板机制的不错的练习,是对模板实例化、模板专门化的漂亮展示。特别地,它考察了对关联容器Map类的理解(尽管这里的Map类只是基于Vector类的包装)。同其他很多习题一样,这道题在《习题解答》里面也没有给出解答。。或许根本就没有所谓的“标准答案”,这也是国外的教育方式与国内的差异所在。先来看一下11.8节的Assoc类
2012-07-08 16:13:40 1055
原创 字符串String类的完整实现 C++程序设计语言第11章
这是一个很有趣的练习。它让我了解了标准库String类的实现,并且增强了我对面向对象编程的理解。这个String类的对象基于采用引用计数的String类表示(Srep),多个String之间将会共享同一个表示。并且在写时仍然采用值语义(即,对一个String的操作不会影响到另一个String),这使用了一种叫“写时复制”的计数,只在对String类进行修改时再复制String类对象。这个良好的策略
2012-02-03 18:19:01 1369
原创 C++ 计算器Calculator类实现
首先祝贺我会插入源代码了。。汗。。原来都不知道还有这个功能。。然后是我今天实现的Calculator类。。分享一下,基于C++程序设计语言第六章的计算器程序。计算器使用“递归下降”的算法(一种流行的直截了当的自顶向下技术),按照表达式-》子表达式-》项 这一顺序递归向下求值。然后首先项会返回这个项的类型,为数字、符号、变量等(枚举Token_value描述项的类型),接着将项向上返回给字表达式
2012-01-17 20:35:09 5883 3
原创 Intset实现:真正理解并掌握链表
这道习题让我纠结了一整天。在写Intset的添加元素的push成员函数时,我一下走进了思维误区。直到晚上无意间看到了C++Primer 16章的Queue类之后才犹如醍醐灌顶。问题在于我把empty()函数写砸了。我原先是这样写的:bool Intset::empty() const{ return beg==end;}然而,这样的一个empty函数将导致在添加第一个元素
2012-01-16 21:25:19 693
原创 C++ 二叉树Tree类 完整实现
这是C++ 二叉树Tree类的实现。花了我整整一天工夫。包含了一个子类和一个树类。通过递归和链表实现的二叉树。相当标准,值得借鉴。 //8.(*2) 实现Tnode 二叉树类#include #include class Tnode{ friend class Tree; Tnode(const std::string& w): word(w),count(
2012-01-13 12:46:10 2107
原创 C++程序设计语言 特别版 第10章 Date类 完整实现
这是我实现的C++程序设计语言(特别版)第10章的Date类(放在了书中提到的Chrono名字空间中),是一个比较完整和可靠的版本。实现了所有的成员函数,例如add_day,add_month,以及减少天数的情况,比市面上大多数商业的Date类还要可靠。另外还通过ostringstream实现了string_rep函数,以及leapyear非成员函数。当然,日期加减成员函数的实现风格与原书不太一样
2012-01-13 12:44:19 797
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人