05 2011 档案

摘要:下面代码仅供本人复习所用,实用性N低,各位飘过吧~~哈哈:>//// 斐波那契数列. // // 斐波那契数列指的是类似于这样的一个数列:// 1, 1, 2, 3, 5, 8, 13, 21...// 该数列从第 3 项开始,每一项都等于前两项之和. //#include <cstdlib>#include <ctime>#include <iostream>#include <stdexcept>//// 递归方法计算斐波那契数列. // unsigned long fibonacci_recursion(const unsigned 阅读全文
posted @ 2011-05-31 17:12 Atypiape 阅读(572) 评论(0) 推荐(0) 编辑
摘要:平时写 C/C++ 小程序的时候,不喜欢开VS,太庞大了,还要建项目。对于小程序,一个可以进行单文件编译的 IDE 是我的首选,我用的是 C-Free 5.0,内置编译器 MinGW,Windows 版 GCC。前几在 C-Free 5.0 上写排序程序,想看一下大概的执行时间,于是用 C 标准库函数 clock() ,结果包含的 time.h 头文件一直不能通过编译。把源代码复制到 VS 2008 里居然顺利编译通过,猜想这应该是编译器 MinGW 的问题,忍忍吧。前天把系统搞得一踏糟,无奈之下还原,今天找了个最新版的 MinGW 编译器,没想到 time.h 头文件的问题没了,爽。其实我用 阅读全文
posted @ 2011-05-30 16:47 Atypiape 阅读(11901) 评论(0) 推荐(1) 编辑
摘要:下面代码仅供本人复习数据结构所用,实用性N低,各位飘过吧~~哈哈:>//// C++ 模版技术实现堆排序. // #include <cstdlib>#include <cstring> #include <iostream>#include <stdexcept>//// 堆化函数模版.// 当一棵二叉树除了根节点外,其子树都满足堆性质时,// 对根节点进行调整,使得整棵二叉树树都满足堆性质.//template <typename T>void heapify(T *array, size_t low, const size 阅读全文
posted @ 2011-05-28 23:53 Atypiape 阅读(643) 评论(0) 推荐(0) 编辑
摘要:下面代码仅供本人复习数据结构所用,实用性N低,各位飘过吧~~哈哈:> 阅读全文
posted @ 2011-05-28 20:00 Atypiape 阅读(1292) 评论(0) 推荐(0) 编辑
摘要:下面代码仅供本人复习数据结构所用,实用性N低,各位飘过吧~~哈哈:>//// C++模版技术实现快速排序. // #include <cstdlib>#include <cstring>#include <iostream> #include <stdexcept>//// 两值交换. //template <typename T>inline void swap(T &x, T &y){ T temp = x; x = y; y = temp;} //// 快速排序函数模版. // 以首元素为基准(pivot) 阅读全文
posted @ 2011-05-28 17:04 Atypiape 阅读(698) 评论(0) 推荐(0) 编辑
摘要:下面代码仅供本人复习数据结构所用,实用性N低,各位飘过吧~~哈哈:>//// C++ 模版技术实现归并排序. // #include <cstdlib>#include <cstring> #include <iostream>#include <stdexcept>//// 归并操作. //template <typename T> void merge(T *array, const size_t low, const size_t mid, const size_t high){ if (NULL == array) { 阅读全文
posted @ 2011-05-28 15:17 Atypiape 阅读(2181) 评论(0) 推荐(0) 编辑
摘要:下面代码仅供本人复习数据结构所用,实用性N低,各位飘过吧~~哈哈:>//// C++ 模版技术实现直接插入排序. // #include <cstdlib>#include <cstring> #include <iostream>template <typename T>void insertionSort(T *array, const size_t count){ T temp; for (size_t i = 1, j; i < count; ++i) { for (j = i, temp = array[j]; 0 < 阅读全文
posted @ 2011-05-28 00:09 Atypiape 阅读(976) 评论(0) 推荐(0) 编辑
摘要:下面代码仅供本人复习数据结构所用,实用性N低,各位飘过吧~~哈哈:>//// C++ 模版技术实现直接选择排序. // #include <cstdlib>#include <cstring> #include <iostream>//// 首先在未排序序列中找到最小元素,存放到排序序列的起始位置,// 然后,再从剩余未排序元素中继续寻找最小元素,// 然后放到排序序列末尾. 以此类推,直到所有元素均排序完毕.//template <typename T>void selectionSort(T *array, const size_t c 阅读全文
posted @ 2011-05-27 23:33 Atypiape 阅读(975) 评论(0) 推荐(0) 编辑
摘要:下面代码仅供本人复习数据结构所用,实用性N低,各位飘过吧~~哈哈:>//// C++模版技术实现鸡尾酒排序(改进的冒泡排序). // #include <cstdlib>#include <cstring>#include <iostream>template <typename T>void swap(T &x, T &y){ T temp = x; x = y; y = temp;}template <typename T>void cocktailSort(T *array, const size_t co 阅读全文
posted @ 2011-05-27 21:31 Atypiape 阅读(885) 评论(0) 推荐(0) 编辑
摘要:下面代码仅供本人复习数据结构所用,实用性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 阅读(679) 评论(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 阅读(2451) 评论(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 阅读(1250) 评论(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 阅读(1044) 评论(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 阅读(1427) 评论(2) 推荐(0) 编辑
摘要:下面代码仅供本人复习数据结构所用,实用性N低,各位飘过吧~~哈哈:>// // C++ 模版技术实现简单循环队列示例. // #include <cstdlib>#include <iostream>#include <iomanip>#include <stdexcept> //// 循环队列类模版. // // 由于循环队列队尾永远为空,队列物理空间应比指定队列逻辑空间大 1,// 而返回的队列大小 size 应该为逻辑大小. // // 入队/出队时当发生上/下溢将抛出异常. //template <typename T> 阅读全文
posted @ 2011-05-26 20:26 Atypiape 阅读(4091) 评论(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 阅读(1365) 评论(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 阅读(3792) 评论(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 阅读(1376) 评论(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 阅读(5106) 评论(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 阅读(476) 评论(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 阅读(3819) 评论(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 阅读(524) 评论(0) 推荐(0) 编辑
摘要:其实我不想废话的,但是我确实废话比较多,刚才电压突变,我的电脑自动关机了,后果,你懂的。以前一直认为 main 函数执行完毕把返回值返回给操作系统,程序自己的事情就算结束了,以后的事情就全部交给操作系统去做了。昨晚看一本 C/C++ 面试题的书,才发现,原来 main 函数执行完毕后还可以在执行其他函数。好吧,也许你要鄙视我了,知道的高手可以飘过了,不知道的朋友一起来了解一下吧,代码献上://// 如果需要在 main 函数执行结束后在执行一段代码的话, // 可以使用 atexit 函数,注册一个或多个函数,它们被注册在栈中, // 在 main 函数结束后被调用,调用顺序与注册顺序相反。 阅读全文
posted @ 2011-05-24 16:28 Atypiape 阅读(4981) 评论(9) 推荐(0) 编辑
摘要:以前一直搞不懂,main函数返回值除了操作系统知道并处理外,对我们还有什么用,我们又怎么得到这个值。后来看了《C++ Primer》终于知道如何访问这个值,方法如下:1) 在命令行下运行一个程序;2) 在命令行下执行命令“echo %ERRORLEVEL”;这样就会输出这个程序运行结束返回值。另外,C为我们定义了两个返回值常量,EXIT_SUCCESS指代0表示程序成功的终止,EXIT_FAILURE表示不成功的终止。 阅读全文
posted @ 2011-05-24 15:31 Atypiape 阅读(658) 评论(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 阅读(5840) 评论(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 阅读(13183) 评论(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 阅读(46742) 评论(9) 推荐(7) 编辑

点击右上角即可分享
微信分享提示