摘要: 问题:输出0~10 结果输出:10 9 8 7 ...0 发生错误,变量U永远不会小于0,循环条件一直成立。 切勿混用带符号类型和无符号类型:如果表达式中既有带符号类型又有无符号类型,当带符号类型取负值时会出现异常结果,这是因为带符号数会自动地转换成无符号数。 阅读全文
posted @ 2016-11-09 18:39 锅里煮水 阅读(514) 评论(0) 推荐(0) 编辑
摘要: 通过简单的代码来介绍使用命名空间中成员的三种方式(我们最常用到的命名空间是是标准库std,下面的命名空间都以std为例): 使用作用域符:: 前缀std::指出名字cout和cin是定义在名为std的命名空间中的。使用这种方式有一个缺点:当使用标准库中的一个名字时,必须显式地说明我们想使用来自命名空 阅读全文
posted @ 2016-11-02 10:56 锅里煮水 阅读(3033) 评论(0) 推荐(0) 编辑
摘要: c++中,逗号表达式的结果是最右边表达式的值 阅读全文
posted @ 2016-10-30 15:45 锅里煮水 阅读(205) 评论(0) 推荐(0) 编辑
摘要: 设队尾指针是rear,队头指针是front,其m为循环队列的最大长度。 1、队空的条件:rear==front 2、队满的条件:(rear+1)%m==front 3、计算队列长度:(rear-front+m)%m 4、入队:(rear+1)%m 5、出队:(front+1)%m 阅读全文
posted @ 2016-10-30 15:25 锅里煮水 阅读(355) 评论(0) 推荐(0) 编辑
摘要: 如果父类虚函数没有被覆盖,则这个虚函数是完全没有意义的。 如有以下两个类的继承情况: class Base{ public: virtual void f(){ cout<<"Base::f()" <<endl; } virtual void g(){ cout<<"Base::g()" <<end 阅读全文
posted @ 2016-10-30 15:18 锅里煮水 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 虚函数的定义: 在某基类中声明为 virtual 并在一个或多个派生类中被重新定 义的成员函数,用法格式为:virtual 函数返回类型 函数名(参数表) {函数体};实现多态性,通过指向派生类的基类指针或引用,访问派生类中同名覆盖成员函数。 考虑下面两个类: class Base {public: 阅读全文
posted @ 2016-10-30 15:15 锅里煮水 阅读(545) 评论(0) 推荐(0) 编辑
摘要: 问题:如果单链表中存在环,求环的起始位置 解:在上篇文章中,利用追逐法判断一个单链表是否存在环。求环的起始位置,需要求解单链表的长度和环的长度的关系。如果确定了单链表的长度和环的长度的关系,那么环的起始位置就呼之欲出了。 在判断单链表中有两个指针P和q,p每次前进两步,q每次前进一步,p的速度是q的 阅读全文
posted @ 2016-10-29 09:58 锅里煮水 阅读(835) 评论(0) 推荐(1) 编辑
摘要: 问题:判断一个单链表中是否存在环 解:一个单链表中存在环,只能存在一种情形,就是尾部有环,不能在中间,否则就违背了单链表只有一个后继结点的原则。带环的单链表可以看成是一个单链表与一个循环链表的结合。判断单链表是否有环的常用方法是追逐法。设置两个指针p和q,p每一次向前走两步,q每一次向前走一步,如果 阅读全文
posted @ 2016-10-28 17:40 锅里煮水 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 问题:求单链表倒数第m个结点,要求不准求链表的长度,也不许对链表进行逆转 解:设置两个指针p和q,p、q指向第一个结点。让p先移动到链表的第m个结点,然后p和q同时向后移动,直到p首先到达尾结点。此时,q结点落后p (m-1)个结点,q所指向的结点就是单链表的倒数第m个结点。 算法实现: 阅读全文
posted @ 2016-10-28 17:24 锅里煮水 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2016-10-27 09:19 锅里煮水 阅读(114) 评论(0) 推荐(0) 编辑