摘要:
现代C++程序设计比较推崇使用模板STL。STL是C++中一个非常重要的改革。在C++03之后,STL表现非常不错,STL中提供了一些常见的算法。这些算法可以直接使用,而不需要自己再去写,效率。 简单总结一下STL一些比较好的算法。 一. 非变易算法 1. for_each:遍历容器元素进行操作 该... 阅读全文
posted @ 2012-10-11 23:13
Mr.Rico
阅读(919)
评论(0)
推荐(0)
摘要:
1. strspn与strcspn 2. strtok与strpbrk 3. strstr, strchr与strrchr 4. 字符串与数值之间的转换:atoi,atol,atof,strtod,strtol,strtoul 5. frexp和ldexp 1. strspn与strcspn (1)... 阅读全文
posted @ 2012-10-11 23:05
Mr.Rico
阅读(1291)
评论(1)
推荐(0)
摘要:
C语言中的时间相关的函数 是C标准函数库中获取时间与日期、对时间与日期数据操作及格式化的头文件。宏: NULL null是一个null指针常量的值 CLOCKS_PER_SEC 每秒的时钟数变量:typedefsize_t类型定义typedefclock_t类型定义structtm结构体struct... 阅读全文
posted @ 2012-10-11 23:03
Mr.Rico
阅读(317)
评论(0)
推荐(0)
摘要:
C语言在 头文件定义了一些宏,当函数参数未知时去获取函数的参数。包括一个va_list类型和三个函数(宏)va_start, va_arg和va_end .变量和定义va_list类型通过stdarg宏定义来访问一个函数的参数表,参数列表的末尾会用省略号省略声明:void va_start(va_l... 阅读全文
posted @ 2012-10-11 23:01
Mr.Rico
阅读(309)
评论(0)
推荐(0)
摘要:
第4章 程序活动记录 在内存资源分配的具体实现上,堆和栈的具体区别: 申请后系统的响应 栈:只要栈的剩余空间大于所申请空间,系统将为程序提供内存,否则将报异常提示栈溢出。 堆:首先应该知道操作系统有一个记录空闲内存地址的链表,当系统收到程序的申请时, 会遍历该链表,寻找第一个空间大于所申请空间的堆结点,然后将该结点从空闲结点链表中删除,并将该结点的空间分配给程序,另外,对于大多数系统,会在这块内存空间中的首地址处记录本次分配的大小,这样,代码中的delete语句才能正确的释放本内存空间。另外,由于找到的堆结点的大小不一定正好等于申请的大小,系统会自动的将多余的那部分重新放入空闲链表中。 2.3 阅读全文
posted @ 2012-10-11 22:55
Mr.Rico
阅读(254)
评论(0)
推荐(0)
摘要:
第3章 数据结构与算法 1. memmove边界问题 voidmemmove_(char*pDst,constchar*pSrc,size_tsize){assert(pSrc!=NULL&&pDst!=NULL);constchar*p;char*q;if(pSrcpDst){p=pSrc+size-1;q=pDst+size-1;while(size--)*q--=*p--;}else{p=pSrc;q=pDst;while(size--)*q++=*p++;}}2. 出错处理方式3. 字符串算法的实现(1) strstr函数: 进行了比较好的判断, 主要是便于比较快的结束 阅读全文
posted @ 2012-10-11 22:46
Mr.Rico
阅读(302)
评论(0)
推荐(0)
摘要:
1. 删除C/C++代码中的注释#include#include#includeusingnamespacestd;voidremove_comment(char*buf,intn){char*p=buf,*end=buf+n;char*sq_start,*dq_start,*lc_start,*bc_start;sq_start=0;//字符:单引号开始dq_start=0;//字符串:双引号开始lc_start=0;//C++注释//bc_start=0;//C语言注释/**/while(pnext->nex, q每次移动一个位置, 即q=q->next, 当p到达最后一个节点 阅读全文
posted @ 2012-10-11 21:06
Mr.Rico
阅读(1163)
评论(0)
推荐(0)
摘要:
首先说明一下快速排序是对冒泡排序的改进。为什么这么说呢?想一下冒泡排序,它把序列分成了两部分,前半部分无序,后半部分升序排列,并且后半部分的数都大于前半部的数。由此可得到快速排序和冒泡排序的一些共同点: 都要经历n趟排序 每趟排序要经历O(n)次比较 都是后半部分元素比前半部大而不同之处就在于冒泡排序的交换操作发生相邻的元素之间,即一趟排序可以要经过多次交换操作;快速排序的交换操作发生在间隔比较远的两个元素之间,一趟排序要经过交换操作次数会少一些。一般的快速排序采用的是递归的方式进行实现的,而且一般只要是递归的问题,都可以转化为非递归的实现,而实现的时候一般采用的是堆栈数据结构。快排的主要思想 阅读全文
posted @ 2012-10-11 14:45
Mr.Rico
阅读(754)
评论(0)
推荐(0)
摘要:
9. 关系数据库的范式 10. 数据库操作中的事务 事务的4个特性: 11. 数字矩阵的生成: 对应的代码如下: #include#include#include#defineprint_arr2d(arr,N){for(inti=0;i=0;j--)arr[i][j]=m++;}else{for(intj=0;j=0;j--)arr[j][i]=m++;}}print_arr2d(arr,N);}/*12671535814164913172210121821231119202425*/voidmat_2(){constintN=5;inta[N][N];intm=1;intK=0;for(i 阅读全文
posted @ 2012-10-11 12:46
Mr.Rico
阅读(449)
评论(0)
推荐(0)