C++
aiaiai010101
这个作者很懒,什么都没留下…
展开
-
命名空间与头文件的关系
一个命名空间是一个作用域,命名空间可以包含类、对象、函数、模板和其他作用域。一个文件可以包含多个命名空间,一个命名空间也可以分布在多个文件中。文件中的命名空间分割文件的全局作用域,而仅仅包含文件,只能直接访问到该文件的全局作用域,而想访问该文件中某个命名空间下的对象等实体,就需通过包含文件,再通过命名空间(局部作用域)来访问该实体。本文转载自:https://zhuanlan.zhih转载 2017-03-15 20:34:10 · 2194 阅读 · 1 评论 -
模板类的继承
模板类的继承包括四种:1.(普通类继承模板类)[cpp] view plain copytemplateclass T> class TBase{ T data; …… }; class Derived:public TBaseint>{ …… }; 2.转载 2018-01-26 20:16:28 · 297 阅读 · 0 评论 -
C++中的dll和lib
lib不是静态库,dll也不是动态库.静态库包含一个lib文件.动态库包含一个lib文件和一个dll文件.http://www.cnblogs.com/TenosDoIt/p/3203137.htmlhttp://www.cnblogs.com/lidabo/archive/2012/11/06/2757080.html这两篇文章说的不错.原创 2017-10-17 16:53:33 · 327 阅读 · 0 评论 -
C++中的函数重复定义问题
本人注释:头文件中直接写函数实现会出现重复定义的错误,但是如果是在类中直接写函数实现就不会出现此错误,原因是两个cpp都包含该头文件,相当于头文件中的同一个函数实现被编译了两次,那么就出现了二义性问题,即调用该函数的地方不知道应该使用哪个函数实现.类中写函数实现就没这个问题,因为会被当成inline函数处理.另外,这与函数重载不一样,函数重载由于特征标的存在编译器能够区分调用哪个实现,转载 2017-10-08 22:20:33 · 5062 阅读 · 0 评论 -
const int * 与 int * const等的区别
这玩意老是记错。。。直接看下面这篇博客吧。。。http://www.cnblogs.com/xwdreamer/archive/2012/04/12/2444494.html转载 2017-10-07 20:19:18 · 328 阅读 · 0 评论 -
两个组合优化问题及算法
最近看到两道编程题,有点意思,不过网上看了一下,虽然有一些人写出了算法,但是感觉算法思想表述的都不够清晰,特别是都是直接上结论,然后证明这么做是对的。我不大喜欢这种表述方式,尝试着以更容易理解的"顺向思维",没错,不是什么"逆向思维",就是正常的思路来推导一下求解过程.①把数组排成最小的数输入一个正整数数组,将它们连接起来排成一个数,输出能排出的所有数字中最小的一个。例如输入数组{32原创 2017-07-23 20:44:05 · 8382 阅读 · 0 评论 -
floyd算法和动态规划的关系
网上讲floyd算法的不少,不过都知道这是动态规划算法的应用,我却没看到几个说明白的,又是那种给你证明这么做是对的的方式,或者还有从前往后推不断加入中介点的,看着貌似正确,实际上根本没体现动态规划的思想所在.动态规划算法,那自然是从后往前推才对,我就从后往前推来说明一下怎么推导出floyd算法的,即正常的思考过程,不是证明过程.假设有5个点,1,2,3,4,5.我想求1到5的最短路径.原创 2017-07-25 15:34:04 · 3394 阅读 · 4 评论 -
二分法和快速排序中的边界问题
提起二分法,估计大部分人都会觉得非常简单,没啥可说的,可要是让你写出一份没有错误的二分查找代码,嘿嘿,说实话,你很大可能会写错. 因为二分查找中的边界问题,非常容易写错.正好前几天逛了一下知乎,发现这个问题有不少不错的回答,其中一个深得我心,思路清晰,代码简洁,分享过来. https://www.zhihu.com/question/36132386,这是知乎上关于二分查找问题的网址,下边是我个人原创 2017-08-01 19:48:45 · 2145 阅读 · 0 评论 -
A*算法的全面讲解
引用 : 点击打开链接如此好贴,不能不转!原文地址:http://dev.gameres.com/Program/Abstract/Arithmetic/AmitAStar.mht本文版权归原作者、译者所有,我只是转贴;如果侵害到您的权益,请联系我,我将删除本文。基本上,这文章可以说是最佳A*算法文档。极力推荐!Amit's A star Page中译文 译序这转载 2017-07-31 16:03:03 · 1225 阅读 · 0 评论 -
堆的插入与删除,上浮与下沉
这文章写的真棒!!!网上关于堆的文章里非常棒的一篇,比较全面,详细.在最大堆构造,堆排序,和最大堆维护的基础上,补充了堆的插入和删除,和其中用到的上浮,下沉等操作。个人理解:最大堆维护是用元素A替换掉堆中某元素后通过最大堆维护操作使得该堆依然是最大堆.而插入则是插入元素A后使得堆依然为最大堆的操作.删除是删除堆中某元素后使得堆依然为最大堆的操作.插入与删除的核心操作其实就是上浮与下转载 2017-07-12 22:04:00 · 5831 阅读 · 0 评论 -
堆与堆排序
说堆的文章网上一大堆,不过说清楚的没几个,这篇凑乎,其实有几处内容也没有说的很清楚,我已经加了注释. 精通八大排序算法系列:二、堆排序算法 作者:July 、二零一一年二月二十日本文参考:Introduction To Algorithms,second edition。------------------- 此精通排序算法系列,前一转载 2017-07-12 19:49:36 · 388 阅读 · 0 评论 -
字符串排列组合问题&递归算法(1)
问题1 :输入一个字符串,打印出该字符串中字符的所有排列。例如输入字符串abc,则输出由字符a、b、c所能排列出来的所有字符串abc、acb、bac、bca、cab和cba。 思路:这是个递归求解的问题。递归算法有四个特性:(1)必须有可达到的终止条件,否则程序将陷入死循环;(2)子问题在规模上比原问题小;(3)子问题可通过再次递归调用求解;(4)子问题的解应能组合成整个问题的解。转载 2017-06-30 19:09:17 · 401 阅读 · 0 评论 -
C++中的二维数组和指针
code1:int a[2]={1,2};int * p=a;code2:int a[2][5]={1,2,3,4,5,6};int * *p=a;以上两份代码中,第一份不会报错,但第二份会报错,因为p是int * *类型,而a是int (*) [5]类型。第二份代码中,如果使用cout输出a,a[0]和&a[0][0],会发现三者的值一样,再输出*a,会发原创 2017-05-27 21:48:51 · 377 阅读 · 0 评论 -
模板类与类模板、函数模板与模板函数等的区别
在C++中有好几个这样的术语,但是我们很多时候用的并不正确,几乎是互相替换混淆使用。下面我想彻底辨清几个术语,这样就可以避免很多概念上的混淆和使用上的错误。这几个词是: 函数指针——指针函数 数组指针——指针数组 类模板——模板类 函数模板——模板函数 最终在使用中,我们就可以让它们实至名归,名正言顺。 1.函数指针——指针函转载 2017-05-25 21:16:42 · 270 阅读 · 0 评论 -
头文件,支持文件和主文件三者之间的关系
先说一下我定义的支持文件和主文件:支持文件是指实现头文件中各种声明的具体定义文件,比如头文件中写了一个函数原型 int sum(int a,int b); 那么支持文件中会写出函数sum的具体定义,比如 int sum(int a,int b) { return(a+b); }主文件就是指调用头文件中声明的函数的文件了,也就是主函数main()所在的文件。比如 int main()原创 2017-03-16 15:43:33 · 921 阅读 · 0 评论 -
Protocol Buffer简介
本文转载自https://www.ibm.com/developerworks/cn/linux/l-cn-gpb/index.html还有两篇https://www.cnblogs.com/autyinjing/p/6495103.html和 http://blog.jobbole.com/107405/ 也不错,配合看看。Google Protocol Buffer 的使用和原理刘 明2010...转载 2018-03-25 15:45:48 · 229 阅读 · 0 评论