摘要: C++中,对象的建立分为两种,一种是静态建立,如A a;另一种是动态建立,如 A *ptr=new A;静态建立:由编译器为对象在栈上分配内存,是通过直接移动栈顶指针,挪出适当的空间,然后在这片内存空间上调用构造函数形成一个栈对象,使用这种方法,直接调用类的构造函数动态建立:是通过new运算符将对象... 阅读全文
posted @ 2015-10-08 20:43 jiguojing 阅读(1106) 评论(0) 推荐(0) 编辑
摘要: 单例模式:是设计模式中比较简单的一种,适合于一个类只有一个实例的情况,比如窗口管理,打印缓冲池和文件系统单例模式特点:一.确保一个类只有一个实例被创建2.在不影响单例类的客户端的情况下允许将来有多个实例,经典的模式:懒汉式,饿汉式,登记式3.提供了一个对全局对象的全局访问指针模式:一.懒汉式:延迟加... 阅读全文
posted @ 2015-10-08 19:34 jiguojing 阅读(1970) 评论(0) 推荐(0) 编辑
摘要: #include #include #includeusing namespace std; void Swap(int &a, int &b){// 有可能swap同一变量,不能用异或版本 int t = a; a = b; b = t;}void RandomShuffle(i... 阅读全文
posted @ 2015-10-08 17:43 jiguojing 阅读(466) 评论(0) 推荐(0) 编辑
摘要: vector的数据安排以及操作方式,与array非常类似,两者唯一的区别是空间运用的灵活性,array是静态空间,一旦配置了就不能改变,如果你想要大一点的空间,就必须首先配置一块新空间,然后将原来的元素一一复制进来,再把原来的空间释放给系统。但是vector是动态空间,随着元素的增加,它的内部机制会... 阅读全文
posted @ 2015-10-08 17:33 jiguojing 阅读(7070) 评论(0) 推荐(0) 编辑
摘要: 首先肯定要先看看这两部分是不是有内存重叠?为什么?1.因为如果有内存重叠(目的地址起始位置处于源指针所指区域之中),你再从起始位置复制的话,这样目的地址改变的时候将源地址内存里面存的东西给改变了,所以必须从高地址开始复制。这样源地址总是走得比目的地址靠近低地址,也就是目的地址永远赶不上还没有复制内容... 阅读全文
posted @ 2015-10-08 16:13 jiguojing 阅读(934) 评论(0) 推荐(0) 编辑