MySql数据库 :优点: 1.支持5000万条记录的数据仓库2.适应于所有的平台3.是开源软件,版本更新较快4.性能很出色。纯粹就性能而言,MySQL是相当出色的,因为它包含一个缺省桌面格式MyISAM。MyISAM数据库 与磁盘非常地兼容而不占用过多的CPU和内存。MySQL可以运行于Windows 系统而不会发生冲突,在UNIX或类似UNIX系统上运行则更好。你还可以通过使用64位处理器来获取额外的一些性能。因为MySQL在内部里很多时候都使用64位的整数处理。5.价格便宜缺点: 缺乏一些存储程序的功能,比如MyISAM引擎联支持交换功能MsSqlserver数据库:优点: 1.真正的客 Read More
posted @ 2012-12-20 10:05 星语海蓝 Views(13008) Comments(0) Diggs(0)
函数的形参和实参/* 形参全称为"形式参数"是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数. 形参的作用是实现主调函数与被调函数之间的联系. 实参全称为"实际参数"是在调用时传递该函数的参数.实参可以是常量、变量、表达式、函数等. 形参和实参的类型必须要一致,或者要符合隐含转换规则,当形参和实参不是指针或引用类型时,在该函数运行时,形参和实参是不同的变量,他们在内存中位于不同的位置,形参将实参的内容复制一份,在该函数运行结束的时候形参被释放,而实参内容不会改变。 而如果函数的参数是指针或引用型类型变量,在调用该函数的过程中, Read More
posted @ 2012-11-30 16:30 星语海蓝 Views(572) Comments(0) Diggs(0)
网上存在一些找出两个字符串中最大的公共子串的代码,但是在我看来他们写的都太复杂了,所以我也写了一个算法,效率不算高,还凑合,但是我觉的他的实现比较简单,代码也比较好维护,代码如下: #include<iostream> #include<cstring> #include<cassert> using namespace std; //找出两个字符串中最长的公共子串(如果存在多个 , 返回第一个) //参数:str1 字符串1 // str2 字符串2 // maxSubStr 找到的最大子串 void findMaxSubstr(const char .. Read More
posted @ 2012-11-02 15:51 星语海蓝 Views(2315) Comments(0) Diggs(0)
构造函数初始化列表以一个冒号开始,接着是以逗号分隔的数据成员列表,每个数据成员后面跟一个放在括号中的初始化式。例如:classCExample{public:inta;floatb;//构造函数初始化列表CExample():a(0),b(8.8){}//构造函数内部赋值CExample(){a=0;b=8.8;}};上面的例子中两个构造函数的结果是一样的。上面的构造函数(使用初始化列表的构造函数)显式的初始化类的成员;而没使用初始化列表的构造函数是对类的成员赋值,并没有进行显式的初始化。初始化和赋值对内置类型的成员没有什么大的区别,像上面的任一个构造函数都可以。对非内置类型成员变量,为了避免 Read More
posted @ 2012-11-01 20:42 星语海蓝 Views(333) Comments(0) Diggs(0)
restrict:restrict只适用于指针,它声明一个指针是唯一初始化访问一个数据对象。int ar[10];int* restrict restar=(int *)malloc(10*sizeof(int));int* par=ar;for(int n=0; n<10; n++) { par[n]+=5; restar[n]+=5; ar[n]*=2; par[n]+=3; restar[n]+=3;}restar指针是restrict类型,par指针就不是,因为par即没有初始化也不是唯一访问ar数组的变量。那么,上面的程序,因为restar是唯一反问数据块的指针,... Read More
posted @ 2012-10-31 19:03 星语海蓝 Views(264) Comments(0) Diggs(0)
restrict:restrict只适用于指针,它声明一个指针是唯一初始化访问一个数据对象。int ar[10];int* restrict restar=(int *)malloc(10*sizeof(int));int* par=ar;for(int n=0; n<10; n++) { par[n]+=5; restar[n]+=5; ar[n]*=2; par[n]+=3; restar[n]+=3;}restar指针是restrict类型,par指针就不是,因为par即没有初始化也不是唯一访问ar数组的变量。那么,上面的程序,因为restar是唯一反问数据块的指针,... Read More
posted @ 2012-10-31 19:01 星语海蓝 Views(241) Comments(0) Diggs(0)
Linux网络编程--网络知识介绍客户端和服务端 网络程序和普通的程序有一个最大的区别是网络程序是由两个部分组成的--客户端和服务器端.客户端 在网络程序中,如果一个程序主动和外面的程序通信,那么我们把这个程序称为客户端程序。 比如我们使用ftp程序从另外一 个地方获取文件的时候,是我们的ftp程序主动同外面进行通信(获取文件), 所以这个地方我们的ftp程序就是客户端程序。服务端 和客户端相对应的程序即为服务端程序。被动的等待外面的程序来和自己通讯的程序称为服务端程序。 比如上面的文件获取中,另外一个地方的程序就是服务端,我们从服务端获取文件过来。互为客户和服务端 实际生活中有些程序是互为服 Read More
posted @ 2012-10-27 15:51 星语海蓝 Views(1496) Comments(0) Diggs(0)
Select在Socket编程中还是比较重要的,它能够监视我们需要监视的文件描述符的变化情况——读写或是异常。 Select的函数格式(Unix系统下的伯克利socket编程,和windows下的略有区别,体现两个方面:一是select函数的第一个参数,在windows下可以忽略,但在linux下必须设为最大文件描述符加1;二是结构fd_set在两个系统里定义不一样):int select(int maxfdp,fd_set *readfds,fd_set *writefds,fd_set *errorfds,struct timeval *timeout); /*参数列表int maxfd. Read More
posted @ 2012-10-22 10:13 星语海蓝 Views(6961) Comments(0) Diggs(0)
一. 共享内存介绍系统V共享内存指的是把所有共享数据放在共享内存区域(IPC shared memory region),任何想要访问该数据的进程都必须在本进程的地址空间新增一块内存区域,用来映射存放共享数据的物理内存页面。系统调用mmap()通过映射一个普通文件实现共享内存。系统V则是通过映射shm文件系统中的文件实现进程间的共享内存通信。也就是说,每个共享内存区域对应shm文件系统的一个文件.二、系统V共享内存API对于系统V共享内存,主要有以下几个API:shmget()、shmat()、shmdt()及shmctl()。#include <sys/ipc.h>#includ Read More
posted @ 2012-10-19 18:16 星语海蓝 Views(933) Comments(0) Diggs(0)
daemon进程步骤1. 调用fork产生一个子进程,同时父进程退出,所有后续工作都在子进程中完成。如果我们是从命令行执行的该程序,这可以造成程序执行完毕的假象,shell会回去等待下一条命令;刚刚通过fork产生的新进程一定不会是一个进程组的组长,这为第2步的执行提供了前提保障。由于父进程已经先于子进程退出,会造成子进程没有父进程,变成一个孤儿进程(orphan)。每当系统发现一个孤儿进程,就会自动由1号进程收养它,这样,原先的子进程就会变成1号进程的子进程。2. 调用setsid系统调用。这是整个过程中最重要的一步。它的作用是创建一个新的会话(session),并自任该会话的组长(sess Read More
posted @ 2012-10-19 11:13 星语海蓝 Views(307) Comments(0) Diggs(0)