- 博客(26)
- 资源 (8)
- 收藏
- 关注
原创 引用容易犯的错误。
<br />class A{public: A(int i){x=i;} int get(){return x;}private: int x;};A & func(){ A a(23); return a;}int main(){ A&r=func(); cout<<r.get()<<endl; return 0;}<br />由于对象a是个局部对象,因此当函数对象func结束后,局部对象a也就被删除了。由于对象a消失了,所以Func
2010-10-30 22:35:00 1041
转载 境界--------相濡以沫,不如相忘于江湖
<br />《庄子·大宗师》原句<br /><br />相濡以沫,不如相忘于江湖<br />大家都听过现在流行的一个词——江湖,这个“江湖”是从哪儿出来的呢?很多人想到武侠小说里的一句“人在江湖,身不由己”,其实不然,江湖这个词最早的出处,便是在庄子说“相濡以沫”的这句话中。<br />在《大宗师》篇中,庄子给我们讲了这么一个小故事:“泉涸,鱼相与处于陆,相呴以湿,相濡以沫,不如相忘于江湖。”<br />意思是说是有一天,一眼泉水干了,两条小鱼被困在了一个小水洼,为了生存下去,它们彼此从嘴中吐出泡泡,用自己
2010-10-29 20:42:00 2690 1
原创 汉诺塔问题.
<br />#include<fstream>#include<iostream>using namespace std;//盘子数量#define numofdisks 10//盘子多了,运行慢ofstream fout("C://Documents and Settings//Administrator//桌面//out.txt");//记录结果void move(int n,char x,char y){ fout<<"移动 "<<n<<" 从 "<<x<<" 到 "<
2010-10-28 14:14:00 596
原创 说说构造函数的初始化列表.
<br />class constref<br />{<br />public:<br />constref(int ii);<br />private:<br />int i;<br />const int ci;<br />int &ri;<br />};<br />constref::constref(int ii)<br />{<br />i=ii;<br />ci=ii;<br />ri=i;<br />}<br />这个构造函数的使用明显是错误的.<br />ci是const 类型,只能被初始化
2010-10-27 10:20:00 662 1
原创 用队列解决数据结构经典问题:杨辉三角形问题。
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1就是下面的元素是这个元素“肩膀上”的两个元素之和。思路:首先初始化一个队列,元素为1,然后根据这个队列迭代生成任意行的二项式系数。判断用户输入的行数,然后决定循环次数。这些循环中,程序根据杨辉三角的实际构造函数模拟构造过程。每次形成一个新的二项式系数序列,并将这个序列 保持在一
2010-10-26 11:22:00 5090
原创 用C++链式队列解决经典问题:舞伴问题!(带注释)
<br />舞伴问题描述如下:<br />就是说有个PARTY舞会需要进行跳舞,当然是男的跟女的搭档了。就是男的一个队列,女的一个队列,然后互相出队列,进行匹配跳舞,如果男的队列跟女的队列人一样多,则输出 匹配完美结束,若最后男的剩下或者女的剩下,此时输出剩下的队列中第一个人的名字,比如I,则输出 I还在干等着呢!大体意思就是这!<br />代码如下:(还是没有区分.h文件,大家懂的,分不分在这里也没有什么意义可言)<br />#include<stdio.h>#include<iostream>#
2010-10-25 16:33:00 6644 2
原创 停车场模拟问题的分析思路,解决细节。加了关键注释。
<br />问题描述:<br />停车场管理员的任务就是帮助车主把车停放在停车场中,或者是帮助车主将 车开出乘车场。然后停车场中能够停放的车辆数目很多,这就使得让莫辆车开出停车场变得复杂。比如:要开走一辆车,则管理员需要把他前面的车全部暂时清除,然后等这辆车开出后再将这些车重新放入停车场。当然了,这个时候腾出了一个空位置,此位置由后面的车占据。<br />任务:编程模拟这样的情况,这里假设停车场最多可停放5辆车。data.txt记录了某一时间段内,该停车场车辆的到来与离开记录,刚开始,停车场是空的。其中大写
2010-10-25 11:01:00 1327
原创 C++中形参与const形参的函数重载问题。
<br />record lookup( phone);<br />record lookup(const phone);<br />这两个属于函数重载吗?<br />这个还需要从实参与形参之间的关系中去寻找答案,这对的区别仅仅在于是否将形参定义为const,这种差异并不影响传递到函数的对象,因此第二个函数声明被视为第一个的重复声明。<br />原因:实参传递方式。复制实参的副本给形参时并不考虑形参是否为const,因为函数操纵的只是副本。函数无法修改实参。因此,既可将const对象传递给const形参,也
2010-10-23 11:09:00 2921 1
转载 很黄很暴力,很陈很冠希。
小鑫:爸爸,为什么我的名字里面三个金呢?爸爸:你命里缺金,所以取名叫鑫,就像有些人命里缺水,就取名叫淼,还有些人命里缺木就叫森。小鑫:爸爸,您说那郭晶晶姐姐命里缺什么呢?我胸小我骄傲,我为国家省布料我光头,我骄傲,我为国家省灯泡我是处男我骄傲,我为国家省套套我处女,我可耻,我为国家浪费电我处男我无耻我为国家浪费卫生纸
2010-10-22 14:34:00 3507
原创 用C++链式栈解决数据结构中的括号匹配问题。
<br />相信学过数据结构的都晓得这个经典问题:括号匹配吧。废话不多少了,看代码吧<br />LinkStack.h<br />#include<stdio.h>template<class T> class LinkStackNode{ public: T data; LinkStackNode<T> *link; LinkStackNode(T& value):link(NULL),data(value){}};template<class T> class LinkS
2010-10-22 13:18:00 2308 2
原创 C++类成员的初始化细节回顾。
<br />对于具有类类型的成员,则会调用该成员所属类自身的默认构造函数实现初始化。<br />内置类型成员的初值依赖于对象如何定义,如果对象在全局作用域中定义或定义为静态局部对象,则这些成员将被初始化为0。如果对象在局部作用域中定义,则这些成员没有初始化。<br /> <br />class A<br />{<br /> int a;<br />public:<br /> int get()<br /> {<br /> return a;<br /> }<br />};<br />A a;<br />v
2010-10-22 10:53:00 601
原创 随便一些
bool test(string &s){return s.empty();}这个函数本身是合法的,但是有些局限性,比如如果传递常量字符串就不行,比如:test("我爱张柏芝")就必然出错因为 非cosnt的形参只能与完全同类型的非const的对象关联。所以应该改为 bool test(const string &s){return s.empty();}比较合理。
2010-10-21 10:40:00 730
原创 初始化动态分配的数组问题
动态分配数组时,如果数组元素具有类类型,将使用该类的默认构造函数实现初始化;如果数组元素是内置类型,则无初始化。string *psa=new string [10];int *pia=new int [10];这两个new表达式都分配了10个对象的数组,第一个数组是string类型,分配了存储对象的空间后,会调用string类型的默认构造函数依次初始化数组中的每个元素。第二个数组为内置类型,分配了存储10个int对象的内从空间,并没 初始化。可以跟在数组后面加一对空圆括号,对数组元素进行初始化。int *
2010-10-20 14:02:00 3435 2
原创 用上节的循环双向链表解决vigenere加密问题。
<br />主要就是一个主函数,关于链表类,上节有注释。<br />#include<stdio.h> template<class T> class DouListNode { T data; DouListNode<T>* link; DouListNode<T>* prior; public: DouListNode():link(NULL),prior(NULL
2010-10-19 10:53:00 666
原创 c_str()使用举例
<br />首先定义了一个类Date<br />#include<iostream>#include<iomanip>using namespace std;class Date{ int year,month,day;public: void set(int y,int m,int d); void set(string& s); bool isLeapYear()const; void print()const;};void
2010-10-17 15:37:00 1336 1
原创 用双向循环链表解决数据结构中的选美比赛问题。
懒得再去分什么头文件了,也没这个必要了。#includetemplate class DouListNode { T data; DouListNode* link; DouListNode* prior; public: DouListNode():link(NULL),prior(NULL){} DouListNode(T value):link(NULL),prior(NULL)
2010-10-16 11:44:00 1058
原创 双向循环链表中结点类,链表类的定义与实现。
template class DouListNode{ T data; DouListNode* link; DouListNode* prior; public: DouListNode():link(NULL),prior(NULL){} DouListNode(T value):link(NULL),prior(NULL),data(value){} ~DouListNode(){}; void SetLink(DouListNode* next);
2010-10-15 15:46:00 2375
转载 计算机启动过程
<br /><br /><br />【计算机启动过程】<br /><br />本帖包含:<br /><br />1.电脑的一般启动过程(比较详细)<br /><br />2.Windows XP的启动(比较详细)<br /><br />3.Vista 的引导过程(粗略)<br /><br /><br /><br /><br /><br />电脑的一般启动过程<br /><br />第一步:<br /> 当我们按下电源开关时,电源就开始向主板和其它设备供电,此时电压还不太稳定,主板上的控制芯片组会向CPU发
2010-10-15 13:31:00 988
原创 用循环单链表(两个模板类:结点类,循环链表类)解决拉丁方阵问题。
拉丁方阵就是这样的比如4阶拉丁方阵1 2 3 42 3 4 13 4 1 24 1 2 3每行每列没重复的数字,这里借助循环单链表来实现,思路:第一遍历(第一行的数据)从第一个结点(注意不是头结点)开始,第二次遍历(第二行的数据)从第二个结点开始,一次类推。。。。。。代码如下:(比较容易看懂,没分.H文件很.CPP文件)//CirListNode类 #include template class CirListNode { T data; CirLi
2010-10-15 11:24:00 947 1
原创 用循环单链表(两个模板类:结点类,循环链表类)解决魔术师发牌问题。
<br />问题描述:魔术师利用一副牌中的13张黑牌,预先将他们排好后叠放在一起,牌面朝下。对观众说:“我不看牌,只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?现场演示。”魔术师将最上面的那张牌数为1,把他翻过来正好是黑桃A,将黑桃A放在桌子上,然后顺序从上到下数手上的余牌,第二次数1,2,将第一张牌放在这些牌的下面,将第二章牌翻过来,正好是黑桃2,也将它放在桌子上,第三次数1,2,3,将前面两张依次放在这些牌的下面,再翻第三章牌正好是黑桃3。这样依次进行将13张牌全部翻出,准确无误。<br />
2010-10-14 10:46:00 744
原创 利用模板类生成的循环单链表实现约瑟夫问题。
<br />PS:15个人排成一圈,给他们1-15的编号,现在从1开始报数,报数字4的人退出,余下的人从退出的下一个位置开始继续刚才的报数,直到整个队列中只剩下一个人为止。请问:这个人是几号?<br />CirList.h<br />//CirListNode类#include<stdio.h>template <class T> class CirListNode{ T data; CirListNode<T>* link; public: CirListNode():lin
2010-10-13 11:52:00 1450
原创 没技术含量但需要注意的一个小问题,仍然是拷贝构造函数问题!
#includeusing namespace std;class Person{ char *name;int age;public: Person() {name=NULL;age=20;}; void Init(int size,int age) { name=new char[size]; this->age=age; } int getAge(){return age;} char *getName(){return name;} void setAge(int age){this->age=
2010-10-09 13:37:00 898
原创 C++中关于拷贝构造函数的调用方式有以下三种!
<br />#include<iostream><br />using namespace std;<br />class Time<br />{<br /> int hour,minute,second;<br />public:<br /> Time():hour(0),minute(0),second(0)<br /> {};<br /> Time(Time &t);<br /> void getTime();<br /> void setTime(int h,int m,int s);<br />}
2010-10-09 12:00:00 5172
原创 数组的应用(二)----荷兰国旗问题的解决
<br />众所周知,荷兰国旗由红色,白色和蓝色3种颜色组成。现在假设有很多这3种颜色的线被存放在一个数组里面,要求每次操作只能进行一次交换,对数组进行一遍扫描后,3种颜色自然分开,颜色顺序应为红,白,蓝。要求时间复杂度O(n),使移动次数最少。<br />解决思路:荷兰国旗问题其实就是一个排序问题,可以将红,白,蓝3种颜色分别用数字0,1,2表示,用一个数组来存储他们。将相同颜色线条归为一类就相等于将数组中的数值按大小进行排序,只不过数组里存储的只有3种数值而已。解题的基本策略是遍历两个颜色区域,如果颜色
2010-10-07 00:54:00 1998 1
原创 数组的应用(一)
<br />应用数组可以实现的算法和解决的问题很多,这里举个非常典型的例子------大整数乘法。由于计算机的精度是有限的,因此单纯使用程序设计语言提供的原子数据类型来完成两个大整数的乘法显然是不切实际的。可以考虑用两个数组来分别存储一些小于10的整数,这些数字按顺序排列在一起,分别表示一个大整数的每一位上的数字,于是大整数的存储问题就解决了。然后按照基本乘法规则对这两个大整数进行运算即可。代码如下:<br />#include<iostream><br />#include<memory><br />us
2010-10-06 23:31:00 619
文件关联问题,问题详细请看CSDN中我的提问
2011-05-15
网络电视的代码文件和生成的网络电视exe文件
2010-01-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人