摘要:在stl中容器分为两大类,序列式容器和关联式容器。序列式容器:array、vector、heap、priority-queue、list、slist、deque、(stack、queue)最后两个是配接器关联式容器:RB-tree、set、map、multiset、multimap、hashtabl...
阅读全文
摘要:红黑树:红黑树是一棵二叉搜索树,树中的每一个结点的颜色不是黑色就是红色。可以把红黑树视为一棵扩充的二叉树,用外部结点表示空指针。特性1:根结点和所有外部结点的颜色是黑色。特征2:从根节点到外部结点的途中没有连续两个结点的颜色是红色。特征3:所有从根节点到外部结点的路径上都有相同数目的黑色结点。从红黑...
阅读全文
摘要:多态性(polymorphism)是指允许通一个函数(或是操作符)有不同版本,对于不同的对象执行不同的版本。c++支持一下两种多态(1)编译时的多态性,表现为函数名(或操作符)的重载。(2)运行时的多态性,表现为派生类和虚函数来实现。函数名重载:编译器能够比较具有同名函数的特征,通过识别实参的数目和...
阅读全文
摘要:题目:编写一个函数,它用于对一个任何类型的数组进行排序。算法核心代码sort函数实现/**功能说明:sort函数可以对不同类型的数据进行排序参数:1、一个指向需要排序的数组的第一个值的指针。2、数组中元素的个数。 3、每个数组元素的长度。4、一个指向比较回调函数的指针 **/void sort(vo...
阅读全文
摘要:程序中每个函数都位于内存中的某个位置,所以存在指向那个位置的指针------函数指针。 函数指针最常用的两个地方是:转换表和作为参数传递给领一个函数。和其他的指针一样,对函数指针执行间接访问之前必须把它初始化为指向某个函数。int f(int);int (*pf)(int) = &f;这...
阅读全文
摘要:联合和结构类似,但是他的行为方式和结构不同。联合的所有成员引用的是内存中的相同位置。当你想在不同时刻把不同的东西存储于同一个位置时,就可以使用联合了。union{ float f; int i;}fi;int main(){ fi.f = 3.14159; printf(...
阅读全文
摘要:实现一个简化的printf函数,能够处理%d,%f,%s,%c等格式。/************************************************************************* > Created Time: 2014年06月17日 星期二 23时22...
阅读全文
摘要:from:http://blog.csdn.net/jemlee2002/article/details/1523164看过很多C或是C++操作MySQL数据库的文章,大部分太吃力了,甚至有一部分根本没有很好的组织文字,初学者比较难以接受,即使是C++或是C高手也是比较难看懂。写这篇文章的目的不是别的,就一个,告诉您用MySQL的C API直接操作MySQL数据,并做了比较高效的封装,可以帮助开发人员大幅度提高采用MySQL的C API操作MySQL数据库的效率。直接进入主题:1、准备工作MySQL数据库安装之后在/MySQL Server 5.0/lib/opt目录下有所需要的各种文件,我们
阅读全文
摘要:ASCII值控制字符ASCII值控制字符ASCII值控制字符ASCII值控制字符0NUT32(space)64@96、1SOH33!65A97a2STX34”66B98b3ETX35#67C99c4EOT36$68D100d5ENQ37%69E101e6ACK38&70F102f7BEL39,71G103g8BS40(72H104h9HT41)73I105i10LF42*74J106j11VT43+75K107k12FF44,76L108l13CR45-77M109m14SO46.78N110n15SI47/79O111o16DLE48080P112p17DCI49181Q113q18
阅读全文
摘要:转自:http://blog.csdn.net/microzone/article/details/6684436C/C++是最主要的编程语言。这里列出了50名优秀网站和网页清单,这些网站提供c/c++源代码。这份清单提供了源代码的链接以及它们的小说明。我已尽力包括最佳的C/C++源代码的网站。这不是一个完整的清单,您有建议可以联系我,我将欢迎您的建议,以进一步加强这方面的清单。1、http://snippets.dzone.com/tag/c/--数以千计的有用的C语言源代码片段2、http://www.hotscripts.com/category/c-cpp/scripts-progra
阅读全文
摘要:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <math.h>/** 分治法排序: 1、分解。2、解决。3、合并。**/void merge(int* a,int p,int q,int r){ int i,j; for(i=p,j=q; i<q && j<r;) { if(a[i] <= a[j]) { i++; continue; }else { int k...
阅读全文
摘要:http://search.csdn.net/CSDN搜索,CSDN还是有非常多的编程资源的,用它的搜索能搜出不少东西。代码类别也比较全面。http://snippets.org/简单实用的代码收集网站,强力推荐。比如你要找个DES加密,要找个数据压缩,找个INI文件操作的C代码等,均能手到擒来。http://www.codase.com/index.html它是一个代码搜索引擎,特别是搜索c/c++的开源代码,可以通过函数名、类名等搜索,很酷噢http://sourceforge.net有名的开源代码库,只要能想到的功能,上面都有对应的源码http://www.tigris.org/和上面的
阅读全文
摘要:/**c和指针 第11章 第二题从标准输入中读取一系列的整数,把这些值存储在一个动态分配的数组中并返回这个数组。数组的第一个元素是该数组的长度其他元素是输入的整数*/#include <stdio.h>#include <stdlib.h>//定义一个长度,最开始时分配的长度#define LENGTH 20int *read_ints(){ int *num; int tem; int count = 0; int size = LENGTH; //分配内存 num = malloc((size+1)*sizeof(int)); //内存分配失败,返...
阅读全文
摘要:#include <iostream>#include <fstream>#include <string.h>/**八皇后问题递归方法实现*/using namespace std;ofstream file;//用以计数计算结果的数目int count = 1;/**打印的棋盘其中打印1的位置是皇后的位置,0空位。这里因为在控制台看不到全部,所有做了在文件中输出所有的解*/int print_Chessboard(int chessboard[][8]){ file.open("data.txt",ofstream::app|ofst
阅读全文
摘要:/**c和指针,第六章 第二题删除一个字符串的一部分,例如:ABCDEFG ,如果输入FGH,CDF,XABC则删除失败,如果输入CDE,则删除成功,得到ABFG删除函数原型:int del_substr(char *stre,char const *substr)stre 是要操作的源字符串,substr是要删除的子字符串。*/#include <stdio.h>#include <stdlib.h>int del_substr(char *stre,char const *substr){ char *str = stre; char *source = str;
阅读全文
摘要:/**C和指针,第六章,第一题查找一个个定的字符集中出现的字符。基本想法:在source中,匹配chars字符串中任何字符的第一个字符。*/#include <stdio.h>#include <stdlib.h>char const *find_char(char const *source,char const *charz){ int a = 0; char const *src = source; char string = *src; while(string!='\0') { char const *chars = charz; ...
阅读全文
摘要:1.堆堆实际上是一棵完全二叉树,其任何一非叶节点满足性质: Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]或者Key[i]>=Key[2i+1]&&key>=key[2i+2] 即任何一非叶节点的关键字不大于或者不小于其左右孩子节点的关键字。 堆分为大顶堆和小顶堆,满足Key[i]>=Key[2i+1]&&key>=key[2i+2]称为大顶堆,满足 Key[i]<=key[2i+1]&&Key[i]<=key[2i+2]称为小顶堆。由上述性质可知大顶堆的堆
阅读全文
摘要:1 #include <stdio.h> 3 void shell_order(int *a,int length) 4 { 5 int increment,i,j,tem; 6 for(increment = length/2; increment > 0; increment /=2) 7 { 8 for(i = increment; i < length; i++) 9 {10 tem = a[i];11 for(j = i; j >= increment; j -= increme...
阅读全文
摘要:求全排列算法实现(一)递归实现假如是一个数组,无重复元素的全排列,其简单的递归实现算法思想如下:假如:allsort(a b c);分治思想化为a+allsort(b c); b+allsort(a c), c+allsort(a b);递归一层后计算第二层时:如allsort(b c)时,化为b+allsort(c) 和 c+allsort(b);此时问题就明显了,首先确定一个元素,求剩下的全排列,如此类推下去做一个递归;c++实现了一个简单的代码如下: 1 #include <iostream> 2 using namespace std; 3 void swap(int &a
阅读全文
摘要:1 #include <stdio.h> 2 void divid_number(int n) 3 { 4 int i; 5 for(i=2; i <= n; i++) 6 { 7 while(n!=1) 8 { 9 if(n%i==0)10 {11 printf("%d ",i);12 n = n/i;13 }14 else break;15 }16 }17 ...
阅读全文