摘要: 下面代码仅供本人复习数据结构所用,实用性N低,各位飘过吧~~哈哈:>//// C++模版技术实现冒泡排序. // #include <cstdlib>#include <cstring>#include <iostream>template <typename T>void bubbleSort(T *array, size_t count){ size_t i, j; bool isSwap; T temp; // // count 个泡泡共需比较 count - 1 趟. // 每趟从最底层 array[count - 1] 开始比较. 阅读全文
posted @ 2011-05-27 20:37 Atypiape 阅读(680) 评论(0) 推荐(0) 编辑
摘要: 下面代码仅供本人复习数据结构所用,实用性N低,各位飘过吧~~哈哈:>//// C++ 模版技术实现简单二叉树. //#include <cstdlib>#include <cstring>#include <iostream>// 二叉树类模版前置声明template <typename T> class BinaryTree; //// 二叉树节点类模版. //template <typename T>class Node{ friend class BinaryTree<T>;private: T _data; 阅读全文
posted @ 2011-05-27 17:34 Atypiape 阅读(2452) 评论(0) 推荐(0) 编辑
摘要: 下面代码仅供本人复习数据结构所用,实用性N低,各位飘过吧~~哈哈:>//// C++ 模版技术实现简单链式栈. // #include <cstdlib>#include <iostream>#include <iomanip>#include <stdexcept>// 链式栈类模版前置声明.template <typename T> class LinkedStack; //// 链式栈节点类模版. // template <typename T>class Node{ friend class LinkedSt 阅读全文
posted @ 2011-05-27 00:44 Atypiape 阅读(1251) 评论(0) 推荐(0) 编辑
摘要: 下面代码仅供本人复习数据结构所用,实用性N低,各位飘过吧~~哈哈:>//// C++ 模版技术实现简单顺序栈. // #include <cstdlib>#include <iostream>#include <iomanip>#include <stdexcept>//// 顺序栈类模版. //template <typename T>class Stack{private: int _top; size_t _size; T *_pStack; static const size_t _DEF_SIZE = 20; // / 阅读全文
posted @ 2011-05-26 23:55 Atypiape 阅读(1045) 评论(0) 推荐(0) 编辑
摘要: 下面代码仅供本人复习数据结构所用,实用性N低,各位飘过吧~~哈哈:>// // C++ 模版技术实现简单链式队列示例. // #include <cstdlib>#include <iostream>#include <iomanip>#include <stdexcept>// 链式队列类模版前置声明. template <typename T> class LinkedQueue;//// 链式队列节点类模版. //template <typename T>class Node{ friend class Lin 阅读全文
posted @ 2011-05-26 21:45 Atypiape 阅读(1428) 评论(2) 推荐(0) 编辑
摘要: 下面代码仅供本人复习数据结构所用,实用性N低,各位飘过吧~~哈哈:>// // C++ 模版技术实现简单循环队列示例. // #include <cstdlib>#include <iostream>#include <iomanip>#include <stdexcept> //// 循环队列类模版. // // 由于循环队列队尾永远为空,队列物理空间应比指定队列逻辑空间大 1,// 而返回的队列大小 size 应该为逻辑大小. // // 入队/出队时当发生上/下溢将抛出异常. //template <typename T> 阅读全文
posted @ 2011-05-26 20:26 Atypiape 阅读(4092) 评论(0) 推荐(0) 编辑
摘要: 下面代码仅供本人复习数据结构所用,实用性N低,各位飘过吧~~哈哈:>//// C++ 模版技术实现简单双向链表示例. // #include <cstdlib>#include <iostream>#include <iomanip>#include <stdexcept> // 双向链表类模版前置声明template <typename T> class DoublyLinkedList; //// 双向链表节点类模版. // template <typename T>class Node{ friend clas 阅读全文
posted @ 2011-05-26 18:43 Atypiape 阅读(1366) 评论(3) 推荐(0) 编辑
摘要: 下面代码仅供本人复习数据结构所用,实用性N低,各位飘过吧~~哈哈:>//// C++ 模版技术实现简单链表示例. // #include <cstdlib>#include <iostream>#include <iomanip>#include <stdexcept> // 链表类模版前置声明 template <typename T> class CLinkedList; //// 节点类模版 //template <typename T>class Node{ friend class CLinkedList& 阅读全文
posted @ 2011-05-26 15:15 Atypiape 阅读(3793) 评论(0) 推荐(0) 编辑
摘要: 用过各种 C/C++ 的 IDE,有些真的让人很蛋疼。比如说用 Dev-C++(记不清是不是它了,好像VS也有这情况),编写控制台程序,调试运行,程序一执行完毕控制台窗口就闪没了,强烈考验我们的眼里。通常呢,我们会在后面加上一条具有阻塞功能的语句比如:// 版本 1// #include <conio.h>getch();// 版本 4// #include <stdlib.h>system("pause");// 版本 3// 在 C++ 中也可以是// #include <iostream>char chNothing;std::ci 阅读全文
posted @ 2011-05-26 15:03 Atypiape 阅读(1377) 评论(4) 推荐(1) 编辑
摘要: 发牢骚之前先温习一下重载函数的定义:出现在相同作用域中的两个函数,如果具有相同的名字而形参表不同,则称为重载函数。根据教条主义,@.@~~哦,说错了,根据教材定义,如果有两个名字相同的函数,二者形参名字和类型都相同,但一个函数的形参带 const 修饰,而另一个函数不带 const 修饰,那么这两个函数应该也是重载函数。就像下面这两个版本://// 版本 1 //int increase(int &val){ return ++val;}//// 版本 2//int increase(const int &val){ return val + 1;}没错,根据 IDE 编译证实 阅读全文
posted @ 2011-05-25 00:54 Atypiape 阅读(5111) 评论(4) 推荐(0) 编辑
摘要: 我只是想记录一下C中可变参数列表的用法,供以后记不清了且手头上没有参考手册使用,为了方便起见我用 C++ 写了,别怪我呀。//// 可变参数列表示例 // #include <cstdlib>#include <cstdarg>#include <climits>#include <iostream>int max(int num, ...){ int m = INT_MIN; // // 参数指针 ap (argument pointer). // 用于对可变参数列表进行遍历. // va_list ap; // // 初始化参数指针 ap. 阅读全文
posted @ 2011-05-24 20:52 Atypiape 阅读(478) 评论(0) 推荐(0) 编辑
摘要: 话说刚才写求最大公约数的代码时,为了提高可靠性,加入了IO错误判断,可测试结果让人不解,先看修改前的部分代码: int a = 0, b = 0; cout << "Please input two number to computing they GCD: "; while (!(cin >> a >> b)) { cin.clear(); // 将流中的所有状态值都重设为有效值 cout << "Input Error !" << endl; cout << "Inpu 阅读全文
posted @ 2011-05-24 19:56 Atypiape 阅读(3822) 评论(0) 推荐(2) 编辑
摘要: 话说中学时没有好好读数学,除了老师课堂上讲的那点,书基本不翻,现在有点后悔,打算过段时间把中学数学书重新翻过。求最大公约数(Greatest Common Divisor,简称GCD),记忆里的求解方法已经模糊,辗转相除法是后来学 C 语言才知道的,不清楚推导过程,只知道有个定理:gcd(a,b) = gcd(b,a mod b)。定理的意思大体是,a 和 b 的最大公约数等于 b 和 a 除 b 所得余数的最大公约数。因此,求余数是个关键。好了,我已经说过了,我数学不好,再分析下去就糗大了,看代码://// 辗转相除法求最大公约数,计算原理依赖定理:gcd(a,b) = gcd(b,a mo 阅读全文
posted @ 2011-05-24 18:12 Atypiape 阅读(525) 评论(0) 推荐(0) 编辑
摘要: 其实我不想废话的,但是我确实废话比较多,刚才电压突变,我的电脑自动关机了,后果,你懂的。以前一直认为 main 函数执行完毕把返回值返回给操作系统,程序自己的事情就算结束了,以后的事情就全部交给操作系统去做了。昨晚看一本 C/C++ 面试题的书,才发现,原来 main 函数执行完毕后还可以在执行其他函数。好吧,也许你要鄙视我了,知道的高手可以飘过了,不知道的朋友一起来了解一下吧,代码献上://// 如果需要在 main 函数执行结束后在执行一段代码的话, // 可以使用 atexit 函数,注册一个或多个函数,它们被注册在栈中, // 在 main 函数结束后被调用,调用顺序与注册顺序相反。 阅读全文
posted @ 2011-05-24 16:28 Atypiape 阅读(4982) 评论(9) 推荐(0) 编辑
摘要: 以前一直搞不懂,main函数返回值除了操作系统知道并处理外,对我们还有什么用,我们又怎么得到这个值。后来看了《C++ Primer》终于知道如何访问这个值,方法如下:1) 在命令行下运行一个程序;2) 在命令行下执行命令“echo %ERRORLEVEL”;这样就会输出这个程序运行结束返回值。另外,C为我们定义了两个返回值常量,EXIT_SUCCESS指代0表示程序成功的终止,EXIT_FAILURE表示不成功的终止。 阅读全文
posted @ 2011-05-24 15:31 Atypiape 阅读(661) 评论(0) 推荐(0) 编辑
摘要: 通常,为了实现多态性,我们将基类的指针或引用指向派生类对象。而当需要使用该派生类对象的特有方法时,可以通过将基类指针转换为派生类指针以达到目的。这样做总是合法的。也许在某些特殊情况下,需求刚好相反,我们需要将基类对象转换为派生类对象。没错,是对象对象,不是指针。先看一下我们的基类和子类的示例代码吧!//// CBase.h// #ifndef __C_BASE_H#define __C_BASE_Husing std::string;using std::cout;using std::endl;class CBase{protected : string _name;public : CBa 阅读全文
posted @ 2011-05-23 15:54 Atypiape 阅读(5846) 评论(0) 推荐(0) 编辑
摘要: #include <iostream> //不要用iostream.h ,会出现好多问题#include <iomanip> // io 流控制头文件, 主要是一些操纵用法如setw(int n),setprecision(int n) ,setbase(int n),setfill(char c)的. ▲setw(n)用法: 通俗地讲就是预设宽度 如 cout<<setw(5)<<255<<endl; 结果是: (空格)(空格)255 ▲setfill(char c) 用法 : 就是在预设宽度中如果已存在没用完的宽度大小,则用设置的 阅读全文
posted @ 2011-05-22 23:31 Atypiape 阅读(13188) 评论(0) 推荐(1) 编辑
摘要: 先给出通过字符型指针输出字符串的示例代码,如下:#include <iostream>using std::cout;using std::endl;int main(){ const char *pszStr = "this is a string"; // 输出字符串 cout << "字符串:" << pszStr << endl; // 显然不会输出地址值 cout << "字符串起始地址值: " << pszStr << endl; retu 阅读全文
posted @ 2011-05-20 18:17 Atypiape 阅读(46768) 评论(9) 推荐(7) 编辑
摘要: 题目:用C++ 设计一个不能被继承的类。分析:这是Adobe 公司2007 年校园招聘的最新笔试题。这道题除了考察应聘者的C++ 基本功底外,还能考察反应能力,是一道很好的题目。在Java 中定义了关键字final ,被final 修饰的类不能被继承。但在C++ 中没有final 这个关键字,要实现这个要求还是需要花费一些精力。首先想到的是在C++ 中,子类的构造函数会自动调用父类的构造函数。同样,子类的析构函数也会自动调用父类的析构函数。要想一个类不能被继承,我们只要把它的构造函数和析构函数都定义为私有函数。那么当一个类试图从它那继承的时候,必然会由于试图调用构造函数、析构函数而导致编译错误 阅读全文
posted @ 2011-04-29 23:17 Atypiape 阅读(441) 评论(0) 推荐(0) 编辑
摘要: 在C++编程语言中,还有很多比较高深的内容值得我们在学习和实践中不断的学习。在这篇文章中,我们将会为大家详细介绍有关C++ const变量的相关内容,希望能帮助大家轻松了解这方面知识。一、对于基本声明const int r=100;标准C++ const变量声明加初始化,因为默认内部连接所以必须被初始化,其作用域为此文件,编译器经过类型检查后直接用100在编译时替换。extend const int r=100;将const改为外部连接,作用于扩大至全局,编译时会分配内存,并且可以不进行初始化,仅仅作为声明,编译器认为在程序其他地方进行了定义。const int r[ ]={1,2,3,4}; 阅读全文
posted @ 2011-04-28 13:34 Atypiape 阅读(3681) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示