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