
C++
后来者511
这个作者很懒,什么都没留下…
展开
-
C/C++中static关键字详解
静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0,使用时可以改变其值。 静态变量或静态函数只有本文件内的代码才能访问它,它的名字在其它文件中不可见。用法1:函数内部声明的static变量,可作为对象间的一种通信机制 如果一局部变量被声明为static,那么将只有唯一的一个静态分配的对象,它被用于在该函数的所有调用中表示这个变量。这个对象将转载 2015-11-22 10:06:01 · 310 阅读 · 0 评论 -
求最小公倍数和最大公约数
最小公倍数:数论中的一种概念,两个整数公有的倍数成为他们的公倍数,其中一个最小的公倍数是他们的最小公倍数,同样地,若干个整数公有的倍数中最小的正整数称为它们的最小公倍数,维基百科:定义点击打开链接求最小公倍数算法:最小公倍数=两整数的乘积÷最大公约数求最大公约数算法:(1)辗转相除法有两整数a和b:① a%b得余数c② 若c=0,则b即为转载 2016-02-19 20:33:57 · 336 阅读 · 0 评论 -
用前序和中序恢复二叉树
struct TreeNode* reConstructBinaryTree(vector pre,vector in) {int inlen=in.size(); if(inlen==0) return NULL; vector left_pre,right_pre,left_in,right_in; TreeN原创 2016-02-18 09:04:34 · 512 阅读 · 0 评论 -
有int d; int *d; bool d; double d;判断这个四个变量是否等于0?
void isZero(double d) 2 { 3 if (d >= -DBL_EPSILON && d DBL_EPSILON) 4 { 5 //d是0处理 6 } 7 } 8 9 void isZero(int d)10 {11 if (0 ==原创 2016-02-17 20:11:46 · 587 阅读 · 0 评论 -
类的大小
先看一个空的类占多少空间? [cpp] view plain copyclass Base { public: Base(); ~Base(); }; 注意到我这里显示声明了构造跟析构,但是sizeof(Base)的结果是1. 因转载 2016-02-16 21:13:41 · 354 阅读 · 0 评论 -
n&(n-1)的作用:将n的二进制表示中的最低位为1的改为0
n&(n-1)作用:将n的二进制表示中的最低位为1的改为0,先看一个简单的例子:n = 10100(二进制),则(n-1) = 10011 ==》n&(n-1) = 10000可以看到原本最低位为1的那位变为0。弄明白了n&(n-1)的作用,那它有哪些应用?1. 求某一个数的二进制表示中1的个数while (n >0 ) { count ++; n转载 2016-02-11 11:25:11 · 799 阅读 · 0 评论 -
对字符串翻转的几种方法
1 采用"两头堵"模型void reversal(char *p){ char *buf=p; int length=strlen(buf); char *p1=buf; char *p2=buf+length-1; while(p1<p2) { char tmp=*p1; *p1=*p2; *p2=*p1; ++p1; --p2; }}2 采用递归+栈原创 2016-01-16 21:01:50 · 492 阅读 · 0 评论 -
统计字符串中非空格字符串的长度并取出--两头堵模型
输入:“ abcdefs "输出:7 abcdefsvoid getString(char *str,char *out,int* pCount){ char* p=str; int ncount; int i=0,j=strlen(p)-1; while(isspace(p[i])&&p[i]!='\0') { i++; } while(i原创 2016-01-16 19:56:35 · 731 阅读 · 0 评论 -
计算匹配字符串的个数
输入:一个含有目的子字符串的长字符串,目的子字符串输出:统计子字符串在长字符串的个数使用strstr 配合while或者do while 模型void count_string(char *str,char* des,int* count){ char *p=str; int tmp=0; while(p=strstr(p,des)) { tmp++; p+=strlen原创 2016-01-16 18:31:51 · 768 阅读 · 0 评论 -
编程珠玑之取样问题
要从0~n-1的整数中取出来m(m有几种算法,第一种算法是严格按照概率得到,满足每个数取得的概率相同。原理和抓阄时候一样,先取和后取得并没有概率上的差别,第一个数字0取得的概率为m/n,当rand()%n第二种算法和以前一篇的洗盘算法比较相似,但是并不是严格的每个数字取到的概率为m/n,算法是这样的,先生成一个n维的整数数组,a值为0~n-1,然后生成m个n内的随机整数rand,然后交转载 2016-01-16 14:35:09 · 531 阅读 · 0 评论 -
rand的使用
rand函数:int rand() 返回一个[0,RAND_MAX]的整数例子:rand()%32会产生一个[0,32)之间的随机数,而rand()%32+1的取值区间实际上是[1,33)要产生[0,32)之间的随机数 rand()%32即可要产生[0,32]之间的随机数 rand()%33即可原创 2016-01-16 13:32:49 · 715 阅读 · 0 评论 -
最长递增子序列
最长递增子序列 问题给定一个长度为N的数组,找出一个最长的单调自增子序列(不一定连续,但是顺序不能乱)。例如:给定一个长度为6的数组A{5, 6, 7, 1, 2, 8},则其最长的单调递增子序列为{5,6,7,8},长度为4.解法1:最长公共子序列法这个问题可以转换为最长公共子序列问题。如例子中的数组A{5,6, 7, 1, 2, 8},则我们排序该数转载 2017-02-04 12:36:09 · 349 阅读 · 0 评论