摘要: 转自:http://blog.csdn.net/hxz_qlh/article/details/13135433 在C++中,类的对象建立分为两种,一种是静态建立,如A a;另一种是动态建立,如A* ptr=new A;这两种方式是有区别的。 1、静态建立类对象:是由编译器为对象在栈空间中分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数 形成一个栈对象。使用这种方... 阅读全文
posted @ 2015-05-27 22:43 外禅内定,程序人生 阅读(580) 评论(0) 推荐(0) 编辑
摘要: 解决循环引用: 在知道存在循环引用的条件下,使用boost::weak_ptr,即弱引用来代替循环引用中的某个强引用,从而打破循环引用的环。由于 C++ 语言没有自动内存回收机制,程序员每次 new 出来的内存都要手动 delete,比如流程太复杂,最终导致没有 delete,异常导致程序过早退出,没有执行 delete 的情况并不罕见,并造成内存泄露。如此c++引入 智能指针 。c++ ... 阅读全文
posted @ 2015-05-27 22:11 外禅内定,程序人生 阅读(811) 评论(1) 推荐(0) 编辑
摘要: 智能指针和普通指针的区别在于智能指针实际上是对普通指针加了一层封装机制,这样的一层封装机制的目的是为了使得智能指针可以方便的管理一个对象的生命期。智能指针内部有一个计数器,记录了当前内存资源到底有多少指针在引用(可以访问这个资源),当新增加一个可以访问这个资源的引用时,计数器会加1,反之会减去1,当计数器为0时,智能指针会自动释放他所管理的资源。手动申请,自动释放,方便内存管理,防止内存泄漏。智能... 阅读全文
posted @ 2015-05-27 21:39 外禅内定,程序人生 阅读(151) 评论(0) 推荐(0) 编辑
摘要: 均匀洗牌即可 方法1: #include#include#includestatic int num = 54;//num为纸牌数目//随机数发生器,产生[n,m)之间的随机数int getRandNum(int n,int m){ if(n==m) { return n; } else if(n>m) { return -1; }... 阅读全文
posted @ 2015-05-27 20:24 外禅内定,程序人生 阅读(530) 评论(0) 推荐(0) 编辑
摘要: 序列式容器: 元素位置和元素插入顺序有关,和元素值无关 vector list deque关联式容器: 和 序列容器相反,set mapvector数组list双向链表set map红黑树deque双向队列 来自为知笔记(Wiz) 阅读全文
posted @ 2015-05-27 19:24 外禅内定,程序人生 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 1. set 的 底层数据结构是 红黑树,一种高效的平衡检索二叉树2. set 容器中 每一个元素就是二叉树的每一个节点,对于set容器的插入删除操作,效率都比较高,原因是因为二叉树的删除插入元素并不需要进行内存拷贝和内存移动,只是改变了指针的指向3. 对 set 进行插入删除操作 都不会引起iterator的失效,因为迭代器相当于一个指针指向每一个二叉树的节点,对set的插入删除并不会改变原有内... 阅读全文
posted @ 2015-05-27 19:13 外禅内定,程序人生 阅读(2093) 评论(0) 推荐(0) 编辑
摘要: 1. vector 底层基本结构是数组,内存空间不够时会调用分配器(allocator)动态开辟双倍的内存空间。2. vector 中有 size 和 capacity 之分,size 相当于瓶子里有多少水,capacity则是瓶子的容积3. 当vector调用clear函数的时候,size变为0,但是真正的内存并未释放,如果要释放掉真正的内存,可以使用swap4. vector有自己的析... 阅读全文
posted @ 2015-05-27 18:48 外禅内定,程序人生 阅读(800) 评论(0) 推荐(0) 编辑
摘要: http 请求方式 ---GET请求和POST请求 1. get请求,获得服务器资源 post请求,向服务器发布信息 2. get请求长度有限制,不适合 文件传输 这类大量数据3. get请求地址栏会出现,一些安全性高的多采用post,把请求参数移到信息体4. 浏览器通常会用缓存存储数据,如果访问的是相同的 url , 提交方式是get,不会再到服务器查看更新数据(可以添加时间戳避免缓存... 阅读全文
posted @ 2015-05-27 15:00 外禅内定,程序人生 阅读(343) 评论(0) 推荐(0) 编辑
摘要: Hibernate中一对多关联的时候hbm.xml文件的配置假设有一个文档管理者类User,和一个文档类Archives。其中User和Archives是一对多双向关联关系 表现在类中如下(此处省略了属性的set和get方法) User类定义如下: public class User implements Serializable { /** 定义id */ private Long id; ... 阅读全文
posted @ 2015-05-27 14:57 外禅内定,程序人生 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 同余定理 定义 所谓的同余,顾名思义,就是许多的数被一个数d去除,有相同的余数。d数学上的称谓为模。如a=6,b=1,d=5,则我们说a和b是模d同余的。因为他们都有相同的余数1。 数学上的记法为: a≡ b(mod d) 可以看出当n<d的时候,所有的n都对d同商,比如时钟上的小时数,都小于12,所以小时数都是模12的同商. 对于同余有三种说法都是等价的,分别为: (1) a... 阅读全文
posted @ 2015-05-27 14:52 外禅内定,程序人生 阅读(411) 评论(0) 推荐(0) 编辑
摘要: 正则表达式(转) 只能输入整数,正数负数零都可以:"^[+-]?[0-9]+$"或\d*整数或者小数:^[0-9]+\.{0,1}[0-9]{0,2}$ //----------------------//有问题只能输入数字:"^[0-9]*$"。只能输入n位的数字:"^\d{n}$"。只能输入至少n位的数字:"^\d{n,}$"。只能输入m~n位的数字:。"^\d{m,n}$"只能输入零... 阅读全文
posted @ 2015-05-27 14:47 外禅内定,程序人生 阅读(159) 评论(0) 推荐(0) 编辑
摘要: Collections中的shuffle()方法 shuffle() 是 Collections 中的静态方法 ,它用于将一个 list 集合中的元素顺序进行打乱 ,类似于洗牌的过程,而且shuffle的 英文含义就是 “洗牌” 。shuffle()方法常用于类似 洗牌要打乱顺序 的问题。 eg: 模拟洗牌import java.util.*;public class Card { ... 阅读全文
posted @ 2015-05-27 14:46 外禅内定,程序人生 阅读(4510) 评论(0) 推荐(0) 编辑
摘要: Fermat定理 Fermat小定理:若n是素数,则对满足1≤a≤n-1的整数a,有a^(n-1)mod n=1;逆否命题:a^(n-1)mod n !=1 ,则 n 为合数。逆命题不一定成立:满足 a^(n-1)mod n=1,n 既可能是 素数 ,也可能是 合数 ,不过很大几率是 素数总而言之:如果 n 是质数 ,则一定有 a^(n-1)mod n=1如果 n 不是质数 ,则 a^(n... 阅读全文
posted @ 2015-05-27 14:45 外禅内定,程序人生 阅读(950) 评论(0) 推荐(0) 编辑
摘要: 哈希算法(转) hash算法的意义在于提供了一种快速存取数据的方法,它用一种算法建立键值与真实值之间的对应关系,(每一个真实值只能有一个键值,但是一个键值可以对应多个真实值),这样可以快速在数组等条件中里面存取数据. 做一个比喻吧: 有很多的小猪,每个的体重都不一样,假设体重分布比较平均(我们考虑到公斤级别),我们按照体重来分,划分成100个小猪圈。然后把每个小猪,按照体重... 阅读全文
posted @ 2015-05-27 14:44 外禅内定,程序人生 阅读(245) 评论(0) 推荐(0) 编辑
摘要: Hungarian method (匈牙利算法)----解决指派问题(转) ---匈牙利解法是求解指派问题的一种新颖而又简便的解法。 ---指派问题的最优解有这样一个性质,若从系数矩阵的一行(列)各元素中分别减去该行(列)的最小元素,得到新矩阵,那么以新矩阵为系数矩阵求得的最优解和用原矩阵求得的最优解相同.利用这个性质,可使原系数矩阵变换为含有很多0元素的新矩阵,而最优解保持不变.---具... 阅读全文
posted @ 2015-05-27 14:41 外禅内定,程序人生 阅读(1927) 评论(0) 推荐(0) 编辑
摘要: 蒙塔卡洛模拟 import java.util.Random;import java.util.Scanner;public class Demo { public static void function(float a, float b, int loop) { /** * 用于统计落入指定区域点的次数 */ ... 阅读全文
posted @ 2015-05-27 14:40 外禅内定,程序人生 阅读(342) 评论(0) 推荐(0) 编辑
摘要: 线程的礼让 线程礼让是指当前正在运行的线程退出运行状态,暂时将运行权让给优先级相同或更高的线程。调用yield()方法实现礼让,他会将当前程序转到就绪状态。yield()方法不抛出任何异常。class Test1 implements Runnable{ public void run(){ for(int i = 1 ;i <= 5 ;i++){ System.out ... 阅读全文
posted @ 2015-05-27 14:39 外禅内定,程序人生 阅读(568) 评论(0) 推荐(0) 编辑
摘要: 线程间的沟通 多个线程之间的协调沟通可以用Object类中的notify(),notifyAll(),wait()方法。notify():唤醒等待池中的线程,执行该方法时,从此对象等待池中随机选择一个线程放入对象的锁池中nitifyAll():唤醒等待池中的所有线程,执行该方法时,把对象等待池中全部线程放入对象的锁池中wait():终止当前线程,放入等待池,释放对象锁,等待被notify(... 阅读全文
posted @ 2015-05-27 14:38 外禅内定,程序人生 阅读(323) 评论(0) 推荐(0) 编辑
摘要: jsp错误总结 1. 默认是 ISO-8859-1编码,使用汉字时出现乱码,改为UTF-8编码即可 2. 注意表单提交方式,post和get的区别3. 下面这种方式是对的,不要把request写入form中 4. form中的action后的jsp文件表示在当前的jsp文件中对表格的提交操作将会将请求传递给main.jsp中5. 当在一个jsp文件中对java源文件进行调用的时候,必须用... 阅读全文
posted @ 2015-05-27 14:37 外禅内定,程序人生 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 显示国际化信息 当我们使用软件的时候,一定会遇到明明安装的是英文版的软件,但是说明书却显示中文的情况,这是怎么做到的? 软件会根据本地的地址所在区域而显示相应的语言。作法如下:来自为知笔记(Wiz) 阅读全文
posted @ 2015-05-27 14:35 外禅内定,程序人生 阅读(196) 评论(0) 推荐(0) 编辑