摘要: C语言,同样使用if else while 这样的语法,但不同的人,就是有不同的实现方式,甚至是技巧。 eg: 上面红线处的if语句,是一个值得借鉴的表达式,这也是上一篇博客所说到的,这需要平时的积累,就算都是基本语法,但不同的人能用出不一样的花样。 这个代码还有一点不足,就是如果我把数组改成mat 阅读全文
posted @ 2017-03-26 16:41 Crystal_Guang 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 #include 3 /*基本水平*/ 4 void mycopy1(char *des,char * sou) 5 { 6 unsigned int i; 7 for ( i = 0; i < strlen(sou); i++) 8 { 9 des[i] = sou[i]; 10 } 11 d... 阅读全文
posted @ 2017-03-26 14:52 Crystal_Guang 阅读(213) 评论(0) 推荐(0) 编辑
摘要: 指针,C语言永恒的话题。关于指针,在《c和指针》上是这样形容的,指针就是地址的另外一个叫法。所以我们要明白,指针和指针变量的区别,指针就是地址,指针变量是存放指针的变量,即指针变量存放的是地址,我们通过间接访问符可以得到该地址的内容。但是,在一般情况下,我们都把指针变量说成指针这样的简称。例如:vo 阅读全文
posted @ 2017-03-25 19:57 Crystal_Guang 阅读(1541) 评论(0) 推荐(0) 编辑
摘要: map类型通常被称为关联数组,与正常数组类似,不同之处在于其下标不必是整数。我们通过一个关键字而不是位置来查找值(键值对)。 与之相对,set就是关键字的简单集合。当只是想知道一个值是否存在时,set是最有用的。 类似顺序容器,关联容器也是模板,为了定义一个map,我们必须指定关键字和值得类型。例: 阅读全文
posted @ 2017-03-25 12:35 Crystal_Guang 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 1 #include 2 int turn_n(int ,int); 3 int main(void) 4 { 5 int test,a=-15,b=0xfffffffe,c=15; 6 printf("%x\n%d\n%x\n",a,b,c); 7 test=turn_n(-15,4); 8 printf("%d\n",test); 9 ... 阅读全文
posted @ 2017-03-24 18:54 Crystal_Guang 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 隐式捕获: 出了显式列出我们希望使用的来自函数的变量外,还可以让编译器根据lambda体中的代码来推断我们要使用哪些变量。为了指示编译器推断捕获列表,应在捕获列表中写一个&或=。&告诉编译器采用引用捕获方式,=告诉编译器采用值捕获方式。我们可以混合使用隐式或显式捕获,在此条件下,捕获列表的第一个元素 阅读全文
posted @ 2017-03-24 09:43 Crystal_Guang 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 捕获列表,只用于局部非static变量,lambda可以直接使用局部static变量和它所在函数之外声明的名字。 eg: 捕获ma,但是ma并未在使用lambda之前并未定义一个局部的ma,故上诉代码报错。 eg: 此时在外部定义全局变量ma,lambda不用捕获列表,依旧可以在表示内使用ma。 当 阅读全文
posted @ 2017-03-23 15:53 Crystal_Guang 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 谓词: 谓词是一个可调用的表达式,其返回结果是一个能用作条件的值。标准库算法所使用的谓词分为两类:一元谓词,意味着它只接受单一参数;二元谓词,意味着它有两个参数。接受谓词参数的算法对输入序列中的元素调用谓词,因此,元素类型必须能转化为谓词的参数类型。典型例子如sort排序算法。 有时候,我们需要更多 阅读全文
posted @ 2017-03-22 13:06 Crystal_Guang 阅读(702) 评论(0) 推荐(0) 编辑
摘要: 数学分析法: 我们知道两个加数,一定可以交换它们的值。a+b求得它们的和,比如为sum,但我们完全可以不再定义一个变量sum,而赋值给a或者b都是可以的,为什么呢?因为知道两个数的和,以及其中一个加数,一定可以得到另一个数。所以就算先覆盖一个加数也是无所谓的。得到a+b的和赋值给a之后,要把a和b交 阅读全文
posted @ 2017-03-21 13:22 Crystal_Guang 阅读(341) 评论(0) 推荐(0) 编辑
摘要: 所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。 反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。 补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。 eg: 阅读全文
posted @ 2017-03-21 10:36 Crystal_Guang 阅读(319) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2017-03-20 12:49 Crystal_Guang 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 算法思路(以升序为例): key=A[j];保存需要的比较值,while循环中,A[i]>key,当前key值的前一个值如果大于key值,就把A[i]的值后移一位,此时后移的位覆盖了key,然后i--,又循环重复,一直到循环结束,循环结束时,从小到大排列,但是此时由于之前i--的原因,跳出循环之后, 阅读全文
posted @ 2017-03-19 16:57 Crystal_Guang 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 之前的类模板成员函数都定义在类的内部,但是在实际开发中,往往需要将成员函数的实现放在类的外部,先看一个基础类: 然后把上面的代码改成类模板: 这里的学问有很多,友元函数的模板分离有很多要考虑的东西。可细读c++ primer这一章节。 阅读全文
posted @ 2017-03-19 10:46 Crystal_Guang 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 与函数模板不同的是,编译器不能为类模板推断模板参数的类型,为了使用类模板,我们必须在模板名后的尖括号中提供额外的消息 用来代替模板参数的模板实参列表。这些额外的信息是显式的模板实参列表,它们被绑定到模板参数。 说明, 阅读全文
posted @ 2017-03-18 21:57 Crystal_Guang 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 先看代码,分析调用情况: 函数模板,也可以重载。当函数模板和普通函数名一样时,调用规则是: 1.如果普通函数和函数模板都有完全匹配的参数,优先调用普通函数的,如上面26行代码。 2.函数模板的参数必须严格一致,不能发生隐式转换,但是普通函数可以有隐式类型转换。这个测试需要把上面第一个模板函数屏蔽,调 阅读全文
posted @ 2017-03-18 11:33 Crystal_Guang 阅读(476) 评论(0) 推荐(1) 编辑