C/C++
文章平均质量分 73
snow0123
这个作者很懒,什么都没留下…
展开
-
C++中next_permutation的实现
在做算法题目的时候,我们经常会遇到穷举一个集合的所有全排列的情况,最常用的方法是用递归的方式来实现。代码如下所示,void permutation(int l, int n){ if(l >= n) { for(int i = 0; i 这是用递归的方法实现的。这个方法的缺点在于不能排除重复的排列,比如{1, 1, 2, 3}这个集合,排列数应该是12,但是按照上述方法就会弄出24种排列,其中的12种都是重复的。原因是这个求全排列原创 2010-07-16 10:24:00 · 3799 阅读 · 1 评论 -
动态链接库dll 静态链接库lib 动态导入库lib
目前以lib后缀的库有两种,一种为静态链接库(Static Libary,以下简称“静态库”),另一种为动态连接库(DLL,以下简称“动态库”)的导入库(Import Libary,以下简称“导入库”)。 静态库是一个或者多个obj文件的打包,所以有人干脆把从obj文件生成lib的过程称为Archive,即合并到一起。比如你链接一个静态库,如果其中有错,它会准确的找到是哪个obj有错,即静态lib只是壳子。 动态库一般会有对应的导入库,方便程序静态载入动态链接库,否则你可能就需要自己LoadLibary调入转载 2010-08-07 15:58:00 · 420 阅读 · 0 评论 -
C++中的拷贝构造函数
C++中的拷贝构造函数跟Java中的对象克隆(clone)是一样的,它们的目的都是通过一个类的实例来获取它的一个副本或者叫拷贝,这个副本或拷贝跟原来的对象拥有相同的数据成员。 在普通的变量赋值中,比如int i=5; int j=i;我们可以用变量i的值去初始化j的值,此时,变量j就叫做变量i的一个拷贝,修改j的值不会影响i的值。实例的初始化也可以通过其他实例进行初始化,即用一个实例去构造另一个实例。在构造的时候,将已存在的实例中的数据成员值传递给新的实例,将其初始化为与已存在的实例具有相同数据的实例原创 2010-08-22 17:02:00 · 697 阅读 · 0 评论